Avatar billede jens_k Nybegynder
07. februar 2010 - 16:57 Der er 2 kommentarer og
1 løsning

Check alle underliggende checkboxe

Hej,

Jeg har noget HTML som bliver opbygget dynamisk, og det kunne f.eks se således ud:

<script>

    function checkAll(obj,CheckValue)
    {
        for (var i=0;i<obj.childNodes.length;i++)
        {
            var e = obj.childNodes[i];
       
            if((e.type=='checkbox') && (!e.disabled))
            {
                e.checked = CheckValue;
            }
        }
    }

</script>

<body>

    Check alle fra Niveau 1 og ned : <input type="checkbox" onclick="checkAll(test1,this.checked)"><br>
    Check alle fra Niveau 2 og ned : <input type="checkbox" onclick="checkAll(test2,this.checked)"><br>
    Check alle fra Niveau 3 og ned : <input type="checkbox" onclick="checkAll(test3,this.checked)"><br>
   
    <br><br>

    <div id="test1">
       
        Niveau 1: <input type="checkbox" name="users" value="1"><br>
        Niveau 1: <input type="checkbox" name="users" value="2"><br>
       
        <div id="test2">
            Niveau 2: <input type="checkbox" name="users" value="3"><br>
            Niveau 2: <input type="checkbox" name="users" value="4"><br>
           
            <div id="test3">
                Niveau 3: <input type="checkbox" name="users" value="5"><br>
                Niveau 3: <input type="checkbox" name="users" value="6"><br>
            </div>
        </div>
       
    </div><br><br>
   
    <div id="test4">
        <input type="checkbox" name="users" value="7"><br>
        <input type="checkbox" name="users" value="8"><br>
    </div>
   
</body>

Ideen er at når man trykker på "Check alle fra Niveau 1 og ned" så skal alle bokse i Niveau 1, 2 og 3 checkes af.

Hvis man istedet trykker på "Check alle fra Niveau 2 og ned" så er det kun Niveau 2 og 3 som skal tjekkes af.

Jeg håber det giver lidt mening med HTML koden!

Der hvor det går galt for mig er fordi jeg har nogle div´er inde i andre div´er, og det vil derfor ikke lykkedes for mig.

Nogen som kan være behjælpelig?

/JensK
Avatar billede majbom Novice
07. februar 2010 - 17:31 #1
man kunne lave noget hvor den tjekker om div'en med id'et test(n) findes (hvor n er nummeret højere end på den div, der er markeret), for så at tjekke de checkboxe der findes dér, og så fremdeles, til der ikke er flere div'er :)
Avatar billede intenz Novice
07. februar 2010 - 19:47 #2
Du kan relativt nemt gøre det ved at ændre din kode til:

    function checkAll(obj,CheckValue)
    {
        for (var i=0;i<obj.childNodes.length;i++)
        {
            var e = obj.childNodes[i];
            if((e.type=='checkbox') && (!e.disabled))
            {
                e.checked = CheckValue;
            } else if (e.nodeName == 'DIV') {
        checkAll(e,CheckValue)
        }
        }
    }
Avatar billede majbom Novice
04. november 2010 - 13:13 #3
løst?
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