J'ai un formulaire avec des milliers de cases à cocher, et quand on est coché, je veux cocher toutes les cases en dessous. Cela fonctionne:trouver un objet en Javascript
<html>
<body>
<form name="myform">
<input type="checkbox" name="box1" onClick="redrawboxes(this);">1<br>
<input type="checkbox" name="box2" onClick="redrawboxes(this);">2<br>
...
</form>
</body>
</html>
<script>
function redrawboxes(obj){
//check all boxes below
var foundit=false;
for (e=0; e<document.myform.elements.length; e++){
if (foundit==false){ //search for checked obj
if(obj == document.myform.elements[e]){
foundit=true;
}
}else{ //continuing below checked box
if(obj.checked){ //are we checking or unchecking
document.myform.elements[e].checked = true;
}else{
document.myform.elements[e].checked = false;
}
}
}
}
</script>
mais pour plus de quelques milliers de boîtes, IE est trop lent. (Firefox fonctionne bien.) Existe-t-il une meilleure façon de trouver la boîte d'origine en plus d'itérer dans toute la liste?
Ma première question est qu'est-ce que tu fais avec des milliers de cases à cocher sur un formulaire? : P –
C'était ma première pensée aussi ...: D –
C'est en réalité un arbre, de milliers d'employés, divisé par département, discipline, position. Je permets la sélection par n'importe lequel de ces groupes ou individus. Dans l'arbre actuel, il ne sélectionne pas tout en dessous de la case cochée, il s'arrête quand il saute un niveau sur l'arbre. –