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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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