Toon posts:

[JS] Probleem met vinden van html-element

Pagina: 1
Acties:

Verwijderd

Topicstarter
Zie onderstaande code:
code:
1
2
3
4
5
6
7
8
9
10
            <script type="text/javascript">
                <!--
                    function CheckAll(){
                        var form = document.getElementById('mainform');
                        for(var i in form.doos){
                            form.doos[i].checked = true;
                        }
                    }
                // -->
            </script>
en
code:
1
2
3
4
5
6
7
8
        <form method="post" id="mainform" action="zelf">
            Doos 1: <input type="checkbox" name="doos[]" value="1"><br>
            || etc.
            Doos 10: <input type="checkbox" name="doos[]" value="10"><br>
            <input type="submit">
        </form><br>
        <br>
        <a href="javascript:CheckAll();">Check All</a>

De bedoeling is (dacht ik) simpel: alle vakjes op Checked zetten.
Als ik die 10 doosjes een aparte naam geef, dus name="doos1" etc., werkt het wel, dus het aanvinken gebeurt dus met 'checked = true'.
In deze test weet ik wel hoeveel vakjes ik heb, maar dat wordt straks dynamisch, dus onbekend, daarom gebruik ik de for-lus met 'in'. Maar in deze test wordt de lus overgeslagen; is form.doos dan geen array of zo?

Ik kan er ook niks over vinden in mijn JavaScript boeken. :?

  • gsteen
  • Registratie: November 2004
  • Laatst online: 13-01-2020
verander name="doos[]" in name="doos" en dan kan je met een for lusje er doorheen lopen:
code:
1
for(var i=0; i< form.doos.length; i++)

"In theory, there is no difference between theory and practice. But, in practice, there is."


Verwijderd

doe eens om te beginnen je HTML netjes maken

en dan form.elements['doos[]'];

overigens moet die name uniek zijn he woops, klets

[ Voor 40% gewijzigd door Verwijderd op 12-04-2005 16:33 ]


  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
Verwijderd schreef op dinsdag 12 april 2005 @ 16:28:
overigens moet die name uniek zijn he
oww ja?? waarom dan??

edit:
.elements[name] geeft toch gewoon een collectie terug wanneer er meerdere elementen zijn met dezelfde naam??

[ Voor 27% gewijzigd door faabman op 12-04-2005 16:31 ]

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!


Verwijderd

Topicstarter
gsteen schreef op dinsdag 12 april 2005 @ 16:18:
verander name="doos[]" in name="doos" en dan kan je met een for lusje er doorheen lopen:
code:
1
for(var i=0; i< form.doos.length; i++)
Ja, maar als ik dan het formulier verstuur krijg ik alleen de laatste waarde, de voorgaanden worden overschreven. Niet wat ik zoek dus.

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 09:08

crisp

Devver

Pixelated

JavaScript:
1
2
var checkboxjes = document.forms['mainform'].elements['doos[]'], i = checkboxjes.length;
while (i--) checkboxjes[i].checked = true;

Intentionally left blank


Verwijderd

Topicstarter
Verwijderd schreef op dinsdag 12 april 2005 @ 16:28:
doe eens om te beginnen je HTML netjes maken

en dan form.elements['doos[]'];

overigens moet die name uniek zijn he woops, klets
Ah, daar werkt het mee. Bedankt!

Bij de weg, wat is er niet netjes aan mijn HTML dan?

Verwijderd

Topicstarter
crisp schreef op woensdag 13 april 2005 @ 14:02:
JavaScript:
1
2
var checkboxjes = document.forms['mainform'].elements['doos[]'], i = checkboxjes.length;
while (i--) checkboxjes[i].checked = true;
Wow, chique! _/-\o_
Pagina: 1