Avatar billede bongo20 Nybegynder
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;


???
Avatar billede bongo20 Nybegynder
07. maj 2003 - 10:20 #1
k = i  selvfølgelig
Avatar billede nikolajdu Nybegynder
07. maj 2003 - 10:23 #2
for(i=0;i<4;i++)
    {
k=i+j;
a = document.frmMain.["C"+k].checked;
if(a){
alert("jeg er tjekket du "+k)
}
}
Avatar billede bongo20 Nybegynder
07. maj 2003 - 10:25 #3
jeg får at vide at den mangler Id ... ???
Avatar billede christian Nybegynder
07. maj 2003 - 10:40 #4
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>
Avatar billede nikolajdu Nybegynder
07. maj 2003 - 11:40 #5
Det er ikke DOM der er forkert - det var mig der simpelthen overså at løkken hed i....
Avatar billede bongo20 Nybegynder
07. maj 2003 - 11:47 #6
hvis jeg alerter a (alert(a)) så får jeg dette tilbage  "Undefined"
Avatar billede nikolajdu Nybegynder
07. maj 2003 - 11:49 #7
Så må du gøre noget forkert....
Avatar billede erikjacobsen Ekspert
07. maj 2003 - 12:44 #8
Det gør ingen forskel, men jeg synes man skal skrive det som

a = document.frmMain.elements["C" + i].checked;
Avatar billede christian Nybegynder
07. maj 2003 - 12:56 #9
Kan du ikke paste hvad det er du ikke kan få til at virke
Avatar billede christian Nybegynder
07. maj 2003 - 12:58 #10
nikolajdu... din dom er altså forkert
Forkert: document.frmMain.["C" + i].checked;
Rigtig: document.frmMain["C" + i].checked;
Altså uden punktum før [
Avatar billede christian Nybegynder
07. maj 2003 - 13:00 #11
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++)
Avatar billede olebole Juniormester
07. maj 2003 - 18:39 #12
<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>
Avatar billede christian Nybegynder
07. maj 2003 - 19:30 #13
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>
Avatar billede olebole Juniormester
07. maj 2003 - 20:12 #14
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
Avatar billede olebole Juniormester
07. maj 2003 - 20:13 #15
ooops .... der skal lige sættes rigtig script-tag på  :)
Avatar billede christian Nybegynder
07. maj 2003 - 22:04 #16
Det eneste jeg ville vise var at hvis C0 ikke findes, så bliver den ikke fanget af betingelsen if, som du skriver
Avatar billede olebole Juniormester
07. maj 2003 - 22:13 #17
Nej, det er rigtigt .... ikke med den kode  :)
Avatar billede christian Nybegynder
07. maj 2003 - 22:40 #18
Nej, ikke med den kode du skrev 20:12:45
Avatar billede olebole Juniormester
07. maj 2003 - 23:11 #19
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  :)
Avatar billede bongo20 Nybegynder
08. maj 2003 - 21:44 #20
Tak for hjælpen :o)
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