Problème d'exécution incorrecte sous ie
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 :
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 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;
}
} |
je lance disable_all_doublons_on_load au chargement de la page.
voici un bout du html :
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 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> |
Si vous voyez une erreur dans mon javascript, n'hésitez pas.
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) :
http://img85.imageshack.us/img85/8422/firefox1rk.th.jpg
et voila ce que j'ai sous ie :
http://img90.imageshack.us/img90/3586/ie5pa.th.jpg