Bonjour, j'ai ecrit un ti script qui marche sous firefox mais pas sous ie. Je ne comprend pas pourquoi. Apparemment, il est valide selon JSlint. Aucune erreur signalée mais le code effectué ne fait pas ce que je veux sous ie.
Voici mon javascript :
je lance disable_all_doublons_on_load au chargement de la page.
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67 function disable_doublons(tableau_check, tableau_res, class_css_decalage) { var tableau = Array(); var i = 0; if(class_css_decalage !== undefined && class_css_decalage != "decale_niveau_1") { for(i=0 ; i<tableau_check.length ; i++) { var une_checkbox = tableau_check[i]; var cellule = tableau_res.rows[parseInt(une_checkbox.value, 10)].cells[3]; var decalage = cellule.className; // si sous-ensemble on d?sactive les doublons if(decalage != "decale_niveau_1") { // si il est deja ds le tableau alors c'est un doublon et on le d?sactive // sinon on ajoute au tableau if(recherche_dans_tableau(tableau, cellule.textContent)) { une_checkbox.disabled = 1; } else { tableau.push(cellule.textContent); } } } } } function disable_all_doublons_on_load() { // var tableau_check = document.forms['formulaire_tableau_resultats'].elements['checkbox_fusionner[]']; var tableau_check = document.forms.formulaire_tableau_resultats.elements['checkbox_fusionner[]']; var tableau_res = document.getElementById('tableau_resultats'); if(tableau_check !== undefined) { disable_doublons(tableau_check, tableau_res, "decale_niveau_2"); } } function recherche_dans_tableau(tableau, valeur) { var i = 0; while (i < tableau.length) { if (tableau[i] == valeur) { break; } else { i++; } } if (i == tableau.length) { return false; } else { return true; } }
voici un bout du html :
Si vous voyez une erreur dans mon javascript, n'hésitez pas.
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
29
30
31
32
33
34
35
36
37 <form name="formulaire_tableau_resultats" method="POST" action="/sc_sociales/crhisco/dipou/test/admin/mots_cles.php"> <table id="tableau_resultats" summary="tableau de résultats"> <tr> <th class="colonne_choix"><a href="javascript:envoyer("mots_cles.php?page=1&action=modifier&etape=1")">Modifier</a></th> <th class="colonne_choix"><a href="javascript:envoyer("mots_cles.php?page=1&action=supprimer&etape=1")">Supprimer</a></th> <th class="colonne_choix"><a href="javascript:envoyer("mots_cles.php?page=1&action=fusionner&etape=1")">Fusionner</a></th> <th>Mots-clés</th> </tr> <tr> <td class="colonne_centree"><input type="radio" name="tableau_resultats_radio" value="1" /></td> <td class="colonne_centree"><input type="checkbox" name="checkbox_supprimer[]" value="1" /><!--afficher--></td> <td class="colonne_centree"><input type="checkbox" name="checkbox_fusionner[]" value="1" onclick="javascript:montrer_selection_possible()"/><!--afficher--></td> <td class="decale_niveau_1"><a href="mots_cles.php?action=modifier&page=1&etape=1&ancien_mot_cle=aaaeza%27rez%27r%27ez%27%E9%5Cfd%3C%3E" class="mot_normal">aaaeza'rez'r'ez'é\fd<></a></td> </tr> <tr> <td class="colonne_centree"><input type="radio" name="tableau_resultats_radio" value="20" /></td> <td class="colonne_centree"><input type="checkbox" name="checkbox_supprimer[]" value="20" /><!--afficher--></td> <td class="colonne_centree"><input type="checkbox" name="checkbox_fusionner[]" value="20" onclick="javascript:montrer_selection_possible()"/><!--afficher--></td> <td class="decale_niveau_2"><a href="mots_cles.php?action=modifier&page=1&etape=1&ancien_mot_cle=A%E9ronautique" class="mot_normal">Aéronautique</a></td> </tr> <tr> <td class="colonne_centree"><input type="radio" name="tableau_resultats_radio" value="20" /></td> <td class="colonne_centree"><input type="checkbox" name="checkbox_supprimer[]" value="20" /><!--afficher--></td> <td class="colonne_centree"><input type="checkbox" name="checkbox_fusionner[]" value="20" onclick="javascript:montrer_selection_possible()"/><!--afficher--></td> <td class="decale_niveau_2"><a href="mots_cles.php?action=modifier&page=1&etape=1&ancien_mot_cle=A%E9ronautique" class="mot_normal">Aéronautique</a></td> </tr> <tr> <th class="colonne_choix"><a href="javascript:envoyer("mots_cles.php?page=1&action=modifier&etape=1")">Modifier</a></th> <th class="colonne_choix"><a href="javascript:envoyer("mots_cles.php?page=1&action=supprimer&etape=1")">Supprimer</a></th> <th class="colonne_choix"><a href="javascript:envoyer("mots_cles.php?page=1&action=fusionner&etape=1")">Fusionner</a></th> <th>Mots-clés</th> </tr> </table> </form>
Sinon quelqu'un connaitrait un debugger pour ie qui permettrait de voir les valeurs des varaibles composées (objets, tableaux...). Car j'ai essayé microsoft script debugger mais c'est de la merde en puissance (tout comme le reste de leurs logiciels)
Merci
[edit] :
Ce javascript permet d'empecher l'utilisateur de cocher les cases qui sont des doublons. Voila ce que ca donne sous firefox (comportement attendu) :
et voila ce que j'ai sous ie :
Partager