07. maj 2003 - 10:20
Der er
19 kommentarer og 1 løsning
enumerere checkboxe
Kan man ikke løbe en række checkboxe igennem i en løkke og samtidig bruge løkkens tæller som en del af navnet? Jeg har nogle checkboxe der hedder C1, C2 ... osv, Noget i retning af : for(i=0;i<4;i++) { k=i+j; a = document.frmMain.C + k + .checked; ???
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
for(i=0;i<4;i++) { k=i+j; a = document.frmMain.["C"+k].checked; if(a){ alert("jeg er tjekket du "+k) } }
jeg får at vide at den mangler Id ... ???
nikolajdu havde den næsten... men dom'en er lidt forkert Denne virker: <script> function tester() { for(i=1; i < 6; i++) { a = document.frmMain["C" + i].checked; if(a){ alert("jeg er tjekket du " + i); } } } </script> <form name="frmMain"> <input type="checkbox" name="C1"> <input type="checkbox" name="C2"> <input type="checkbox" name="C3"> <input type="checkbox" name="C4"> <input type="checkbox" name="C5"> </form><br> <a href="java script: tester();">test</a>
Det er ikke DOM der er forkert - det var mig der simpelthen overså at løkken hed i....
hvis jeg alerter a (alert(a)) så får jeg dette tilbage "Undefined"
Så må du gøre noget forkert....
Det gør ingen forskel, men jeg synes man skal skrive det som a = document.frmMain.elements["C" + i].checked;
Kan du ikke paste hvad det er du ikke kan få til at virke
nikolajdu... din dom er altså forkert Forkert: document.frmMain.["C" + i].checked; Rigtig: document.frmMain["C" + i].checked; Altså uden punktum før [
Bruger du den løkke som jeg har lavet? For hvis ikke skal du huske at hvis du skriver: for(i=0;i<4;i++) så starter i med 0 og hvis C0 ikke findes får du "Undefined" så ændrer den til: for(i=1;i<4;i++)
<ole> cristian >> Nej, han får ingen 'Undifined'. Eksisterer C0 ikke, bliver den da fanget med betingelsen i din if :) Til gengæld vil jeg give Erik helt ret. Det bliver noget kønnere at tage 'elements' med - og under alle omstændigheder bør script-typen og evt. sproget angives i script-tag'et. Altså som minimum: <script type="text/JavaScript"> // Kode her </script> /mvh </bole>
ole >> Jo, men får altså fejl, prøv engang! <script> function tester() { for(i=0; i < 6; i++) { a = document.frmMain.elements["C" + i].checked; if(a){ alert("jeg er tjekket du " + i); } } } </script> <form name="frmMain"> <input type="checkbox" name="C1"> <input type="checkbox" name="C2"> <input type="checkbox" name="C3"> <input type="checkbox" name="C4"> <input type="checkbox" name="C5"> </form><br> <a href="java script: tester();">test</a>
Hehe ... nææhh, du begår jo altså også nogle fejl. Sådan kan du ikke bruge 'elements' ... og så tæller du for højt op (<5 skulle der have stået) ;o) Denne her er lidt mere generisk og giver mulighed for andre valideringer samtidigt: <script> function tester() { var f = document.frmMain; for(i=0; i < f.length; i++) { var a = f.elements[i]; if(a.type=="checkbox" && a.checked){ alert("jeg er tjekket du " + i); } } } </script> <form name="frmMain"> <input type="checkbox" name="C1"> <input type="checkbox" name="C2"> <input type="checkbox" name="C3"> <input type="checkbox" name="C4"> <input type="checkbox" name="C5"> </form><br> <a href="java script: tester();">test</a> /mvh
ooops .... der skal lige sættes rigtig script-tag på :)
Det eneste jeg ville vise var at hvis C0 ikke findes, så bliver den ikke fanget af betingelsen if, som du skriver
Nej, det er rigtigt .... ikke med den kode :)
Nej, ikke med den kode du skrev 20:12:45
Ehhhhh ...... nu tror jeg vist ikke, dette er kategorien - men du skulle vel nok kunne oprette et spørgsmål i en af de andre kategorier om den korrekte fremgangsmåde ved copy/paste. Selvfølgelig virker den :)
Vi tilbyder markedets bedste kurser inden for webudvikling