Parcour des getElementById dans un formulaire imbriqué ?
Bonjour,
Je voulais faire un truc tout con, une checkbox permettant de cocher plusieurs checkbox d'un coup. Tout marche très bien, mais je me suis retrouvé face à un problème.
IE arrête de parcourir les éléments lorsqu'il renconter une balise de type formulaire. Comment faire pour le forcer à continuer ? A noter que la procédure marche très bien sous Firefox.
Mon code est ce qu'il y a de plus simple :
- une checkbox principale permettant un checkall
- deux checkbox de choix
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| <html>
<head>
<script type="text/javascript">
function checkDelBoxes(pId, pName, pState) {
var cur = document.getElementById(pId).firstChild;
while (cur != null) {
if (cur.nodeName == 'INPUT')
if (cur.getAttribute('type') == 'checkbox' && cur.name == pName)
cur.checked = pState;
cur = cur.nextSibling;
}
}
//-->
</script>
</head>
<body>
<form method="get" action="">
<input type="checkbox" onClick="checkDelBoxes('div_chck', 'checkgroup', this.checked);" id="checkbox0" /><label for="checkbox1">All</label><br />
<br /><br />
<div id="div_chck">
<input type="checkbox" name="checkgroup" id="checkbox1" /><label for="checkbox1">Choix 1</label><br />
<form id="test_form" method="get" action="">plop</form>
<input type="checkbox" name="checkgroup" id="checkbox2" /><label for="checkbox2">Choix 2</label><br />
</div>
</form>
</body>
</html> |
Si quelqu'un a une idée, je m'arrache les cheveux dessus...
J'ai aussi essayé de parcourir avec les names des éléments, mais IE bloque exactement au même endroit :
Code:
1 2 3 4 5 6 7 8
| <script type="text/javascript">
function checkDelBoxes(pForm, boxName, state) {
for (i = 0; i < pForm.elements.length; i++)
if (pForm.elements[i].name == boxName)
pForm.elements[i].checked = state;
}
</script> |
Merci d'avance :king: