04. januar 2005 - 13:18
Der er
20 kommentarer og 1 løsning
validering af radiobutton
Hej Eksperter, Jeg har en side som i princippet ser således ud <html> <head> <script language="JavaScript"> function validate(f){ // værdier som skal valideres valg =f.valg.value if (valg.length<1){ alert("FEJL"); return false; } return true; } </script> </head> <body> <form name="sporge" onsubmit="return validate(this);"> <input type="radio" name="valg" value="1"> <input type="radio" name="valg" value="2"> <input type="submit" name="send" value="Send"> </form> </body> </html> Hvordan sikre jeg mig at valg har en værdi
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
04. januar 2005 - 13:30
#1
Hvorfor får valg ikke den værdi som jeg vælger???
04. januar 2005 - 13:30
#2
if (f.valg[0].checked || f.valg[1].checked) { // OK return true; } else { // NOT alert('FEJL'); return false; }
04. januar 2005 - 13:34
#3
Jeg har prøvet at skrive valg ud og den står bare som undefined, også selv om jeg vælger en værdi
04. januar 2005 - 13:36
#4
.... Gennem JavaScript skal du selv finde den valgte box/radio, ved at løbe dem igennem, hvis du vil have værdien. for (temp=0;temp<f.valg.length;temp++) { if(f.valg[temp].checked) valg = f.valg[temp].value; }
04. januar 2005 - 13:39
#5
Jeg er i princippet ikke interesseret i værdien, kun om den er valgt
04. januar 2005 - 13:43
#6
Det er mit første script. Der tjekker den for om en af dem er valgt (checked).
04. januar 2005 - 13:44
#7
hmmm. Nu har jeg jo en række valg som skal checkes. Kan man ikke lave det sådan at true kun bliver returneret hvis alle er udfyldt
04. januar 2005 - 13:48
#8
Afhængig af hvormange du har kan du gøre det mere dynamisk. Her er der 3 grupper (valg1, valg2 og valg3) hver med 2 muligheder: if ((f.valg1[0].checked || f.valg1[1].checked) && (f.valg2[0].checked || f.valg2[1].checked) && (f.valg3[0].checked || f.valg3[1].checked)) Hvis du har rigtig mange ville det være bedre at lave nogle løkker som finder elementerne dynamisk.
04. januar 2005 - 13:56
#9
Sådan ikke? if ( (f.valg1[0].checked || f.valg1[1].checked) && (f.valg2[0].checked || f.valg2[1].checked) ) Jeg får ikke true selv om de begge er checked :-(
04. januar 2005 - 14:00
#10
Kunne jeg ikke lige se hele din kode...
04. januar 2005 - 14:00
#11
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Admlogin</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link rel="stylesheet" type="text/css" href="./style/style.css"> <script language="JavaScript"> function validate(f){ // værdier som skal valideres if ( (f.valg1[0].checked || f.valg1[1].checked) && (f.valg2[0].checked || f.valg2[1].checked) ) { // OK return true; } else { // NOT alert('Alle spørgsmål bedes besvaret'); return false; } } </script> </head> <body style="background-image:url('');background-repeat: no-repeat;"> <div style="display:inline;position:absolute;padding-top:0px;margin-top:20px;margin-left:0px;height:150px;width:350px;background-color:transparent;"> Velkommen til Spørgeskemaet <b>brian</b> </div> <div style="overflow:auto;display:inline;position:absolute;padding-top:0px;margin-top:60px;margin-left:0px;height:500px;width:920px;background-color:transparent;"> <form name="sporge" onsubmit="return validate(this);"> <table border="1" style="width:900px;"> <tr> <th style="width:400px;text-align:left;">Spørgsmål</th> <th style="width:100px;">meget uenig</th> <th style="width:100px;">uenig</th> <th style="width:100px;">ved ikke</th> <th style="width:100px;">enig</th> <th style="width:100px;">meget enig</th> </tr> <tr> <td>Sprøgsmål 1</td> <td style="text-align:center;"><input type="radio" name="valg1" value="1"></td> <td style="text-align:center;"><input type="radio" name="valg1" value="2"></td> <td style="text-align:center;"><input type="radio" name="valg1" value="3"></td> <td style="text-align:center;"><input type="radio" name="valg1" value="4"></td> <td style="text-align:center;"><input type="radio" name="valg1" value="5"></td> </tr> <tr> <td>Spørgsmål 2</td> <td style="text-align:center;"><input type="radio" name="valg2" value="1"></td> <td style="text-align:center;"><input type="radio" name="valg2" value="2"></td> <td style="text-align:center;"><input type="radio" name="valg2" value="3"></td> <td style="text-align:center;"><input type="radio" name="valg2" value="4"></td> <td style="text-align:center;"><input type="radio" name="valg2" value="5"></td> </tr> </table> <div style="text-align:right;"> <br /> <input type="submit" name="send" value="Send"> </div> </form> </div> </body> </html>
04. januar 2005 - 14:06
#12
Du har 5 elementer i hver gruppe. Vi skal have alle dem med på listen: if ( (f.valg1[0].checked || f.valg1[1].checked || f.valg1[2].checked || f.valg1[3].checked || f.valg1[4].checked) && (f.valg2[0].checked || f.valg2[1].checked || f.valg2[2].checked || f.valg2[3].checked || f.valg2[4].checked) ) Det er dog ikke smart med en så lang if-sætning, så hvis du får flere radiobuttons på skulle vi nok finde den dynamiske løsning i stedet.
04. januar 2005 - 14:15
#13
Kan man gøre noget i den her stil for (temp=0;temp<f.valg1.length;temp++) { if (f.valg1[temp].checked) { // OK return true; } else { // NOT alert('Alle spørgsmål bedes besvaret'); return false; } }
04. januar 2005 - 14:23
#14
Jeg kan vist godt se problemet. Den vil jo returnerer false i første gennemløb
04. januar 2005 - 14:26
#15
Det er noget i den stil, men det skal laves for hver gruppe. Jeg arbejder lige på det....
04. januar 2005 - 14:32
#16
Dette har jeg ikke testet, men det er noget i den stil. Du skal bare sætte "antalGrupper" til det antal ? der er. Den finder dynamisk ud af hvor mange svarmuligheder der er i hver gruppe. returVal = true; antalGrupper = 5; for(temp=1;temp<=antalGrupper;temp++) { col = document.getElementsByName("valg"+ temp) tempTjek = false; for(temp1=0;temp1<col.length;temp1++) { if(col[temp1].checked) tempTjek = true; } if(!tempTjek) { returVal = false; } } if(!returVal) alert("fejl") return returVal;
04. januar 2005 - 14:45
#17
Jeg kan ikke få det til at virke.
04. januar 2005 - 14:49
#18
der vil altid være det samme antal svarmuligheder (5), men der vil være X antal spørgsmål. Reglen vil være at de hedder valg 1 til valg X.
04. januar 2005 - 14:50
#19
Jeg må sku nok hellere ligge det lidt fra mig :-)
04. januar 2005 - 14:59
#20
Det burde faktisk virke. Denne gør: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Admlogin</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link rel="stylesheet" type="text/css" href="./style/style.css"> <script language="JavaScript"> function validate(f){ returVal = true; antalGrupper = 2; for(temp=1;temp<=antalGrupper;temp++) { col = document.getElementsByName("valg"+ temp) tempTjek = false; for(temp1=0;temp1<col.length;temp1++) { if(col[temp1].checked) tempTjek = true; } if(!tempTjek) { returVal = false; } } if(!returVal) alert("fejl") return returVal; } </script> </head> <body style="background-image:url('');background-repeat: no-repeat;"> <div style="display:inline;position:absolute;padding-top:0px;margin-top:20px;margin-left:0px;height:150px;width:350px;background-color:transparent;"> Velkommen til Spørgeskemaet <b>brian</b> </div> <div style="overflow:auto;display:inline;position:absolute;padding-top:0px;margin-top:60px;margin-left:0px;height:500px;width:920px;background-color:transparent;"> <form name="sporge" onsubmit="return validate(this);"> <table border="1" style="width:900px;"> <tr> <th style="width:400px;text-align:left;">Spørgsmål</th> <th style="width:100px;">meget uenig</th> <th style="width:100px;">uenig</th> <th style="width:100px;">ved ikke</th> <th style="width:100px;">enig</th> <th style="width:100px;">meget enig</th> </tr> <tr> <td>Sprøgsmål 1</td> <td style="text-align:center;"><input type="radio" name="valg1" value="1"></td> <td style="text-align:center;"><input type="radio" name="valg1" value="2"></td> <td style="text-align:center;"><input type="radio" name="valg1" value="3"></td> <td style="text-align:center;"><input type="radio" name="valg1" value="4"></td> <td style="text-align:center;"><input type="radio" name="valg1" value="5"></td> </tr> <tr> <td>Spørgsmål 2</td> <td style="text-align:center;"><input type="radio" name="valg2" value="1"></td> <td style="text-align:center;"><input type="radio" name="valg2" value="2"></td> <td style="text-align:center;"><input type="radio" name="valg2" value="3"></td> <td style="text-align:center;"><input type="radio" name="valg2" value="4"></td> <td style="text-align:center;"><input type="radio" name="valg2" value="5"></td> </tr> </table> <div style="text-align:right;"> <br /> <input type="submit" name="send" value="Send"> </div> </form> </div> </body> </html> Bare husk at ændre "antalGrupper = 2" til det antal ? der er.
04. januar 2005 - 15:02
#21
Skide godt. Tak for hjælpen :-)
Vi tilbyder markedets bedste kurser inden for webudvikling