Bonjour à tous.
Je cherche à réaliser une application comprenant deux ligne de bouton de type radio à cocher.
Les deux lignes sont exclusives : il est possible de cocher plusieurs boutons d'une ligne, mais aps deux boutons en colonne.
J'ai placé un bouton permettant de cocher à la fois tous les boutons d'une même ligne. OK, ça fonctionne (code plus bas).
Je souhaite avoir ce bouton sur mes deux lignes. Je le positionne donc, et il fonctionne pour chaque ligne séparément.
Mon problème est dans la synchronisation des lignes.
Je m'explique : si je clique sur le bouton 'tout cocher' de la ligne 1, tous les boutons de la ligne 1 se cochent, jusque là tout est normal.
Si je clique alors sur le bouton 'tout cocher' de la ligne 2, je m'attends à ce que tous les boutons de la ligne 2 se cochent, et tous ceux de la ligne 1 se décochent. Or, il ne se passe rien, et je suis obligé de cliquer une deuxième fois pour avoir le comportement attendu.
Quelqu'un saurait-il me dire où je fais une erreur ?
Merci beaucoup.
Voici mon code :
Le formulaire
... et ma fonction javascript.
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 <tr id="checkboxes" class="voteboxes"> <td class="check_ok"> <input type="radio" id="check_ok" name="197" value="1"/> </td> <td class="check_ok"> <input type="radio" id="check_ok" name="198" value="1"/> </td> <td class="checkall"><input type="button" onClick="this.value=check(document.forms['form_poll'],'check_ok');" value="Tout cocher"></td> </tr> <tr class="voteboxes"> <td class="check_ok_if_needed"> <input type="radio" id="check_ok_if_needed" name="197" value="2"/> </td> <td class="check_ok_if_needed"> <input type="radio" id="check_ok_if_needed" name="198" value="2"/> </td> <td class="checkall"><input type="button" onClick="this.value=check(document.forms['form_poll'],'check_ok_if_needed');" value="Tout cocher"></td> </tr>
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 <script LANGUAGE="JavaScript"> <!-- Begin var checkflag = "false"; function check(field,type) { if (checkflag == "false") { for (i = 0; i < field.length; i++) { if (field[i].id==type) field[i].checked = true; } checkflag = "true"; return "Tout décocher"; } else { for (i = 0; i < field.length; i++) { if (field[i].id==type) field[i].checked = false; } checkflag = "false"; return "Tout cocher"; } } // End --> </script>
Partager