Avatar billede jan2001 Nybegynder
25. februar 2003 - 17:01 Der er 9 kommentarer og
1 løsning

se fejlen

Kan nogen se fejlen i dette script?

<script language="JavaScript">
<!--

if(top.location==self.location){top.location.href="menu.htm"}

function checkform(form1) {

var count = 0;
if (form1.plads1.checked) {
count = count + 1;
}
if (form1.plads2.checked) {
count = count + 1;
}
if (form1.plads3.checked) {
count = count + 1;
if (count < 3) {
alert('Mindst tre skal være markeret!');
return (false);
}
if (form1.navn.value=="") {
alert('Udfyld venligst feltet Navn!');
return (false);
}

if (form1.by.value=="") {
alert('Udfyld venligst feltet By!');
return (false);
}
if (form1.email.value=="") {
alert('Udfyld venligst feltet Email!');
return (false);
}
return (true);
}

//-->
</script>

Den smider mig bare hen på den side der står i action-feltet i formtag'et.

<form name="form1" method="post" action="sendmail.asp" OnSubmit="return checkform();">


Bye for now
Avatar billede Slettet bruger
25. februar 2003 - 17:03 #1
Kan du ikke lige smide input felterne herind også?
Avatar billede jan2001 Nybegynder
25. februar 2003 - 17:11 #2
Jo, i en forkortet udgave, da hver "plads" indeholder 10 radioknapper.

<input type="radio" name="plads1" value="1">
<input type="radio" name="plads1" value="2">

<input type="radio" name="plads2" value="1">
<input type="radio" name="plads2" value="2">

<input type="radio" name="plads3" value="1">
<input type="radio" name="plads3" value="2">
Avatar billede Slettet bruger
25. februar 2003 - 18:30 #3
Prøv at rette

<form name="form1" method="post" action="sendmail.asp" OnSubmit="return checkform();">

til

<form name="form1" method="post" action="sendmail.asp" OnSubmit="return checkform(this);">

og brug dette:

<script language="JavaScript">
<!--



function checkform(form1) {

var count = 0;

if (form1.plads1[0].checked || form1.plads1[1].checked) {
count++;
}

if (form1.plads2[0].checked || form1.plads2[1].checked) {
count++;
}

if (form1.plads3[0].checked || form1.plads3[1].checked) {
count++;
}

if (count < 3) {
alert('Mindst tre skal være markeret!');
return (false);
}

if (form1.by.value == "") {
alert('Udfyld venligst feltet By!');
return (false);
}

if (form1.email.value == "") {
alert('Udfyld venligst feltet Email!');
return (false);
}

}

//-->
</script>
Avatar billede jan2001 Nybegynder
25. februar 2003 - 23:24 #4
Har endnu ikke checket om det virker, men vil bare lige sige, at det jo bliver en pokkers lang funktion, når hver plads indeholder 10 radioknapper. Men måske kan det gøres med nogle løkker.
Avatar billede Slettet bruger
25. februar 2003 - 23:29 #5
Det kan det helt klart. Men det er jeg ikke stiv nok i JavaScript til at kunne udtænke :/

Ville mene at det skulle være noget i denne stil:

for($i = 0; $i <= 10; $i++) {

if (form1.plads1[$i].checked) {
count++;
}

}

Det løber de 10 radioknapper i plads1 igennem og tæller en op hvis der er en af dem der er krydset af.
Avatar billede jan2001 Nybegynder
26. februar 2003 - 10:08 #6
Jeg har checket din kode og den har det problem, at den kommer med alert-boksen lige så snart man markerer bare en af radioknapperne. Det er som om den løber hele funktionen igennem hvergang der klikkes. Kan den ikke vente til man har klikket submit.
Avatar billede Slettet bruger
26. februar 2003 - 10:14 #7
Det gør den altså ikke hos mig?
Avatar billede jan2001 Nybegynder
26. februar 2003 - 10:30 #8
Sorry, jeg havde skrevet onclick i stedet for onsubmit. Nu virker det, men din løkke kan jeg ikke få til at funke.
Avatar billede jan2001 Nybegynder
18. oktober 2003 - 14:45 #9
lukker
Avatar billede jan2001 Nybegynder
01. december 2003 - 11:32 #10
mm
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester