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 : 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;
	}
}
je lance disable_all_doublons_on_load au chargement de la page.

voici un bout du html :
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(&quot;mots_cles.php?page=1&amp;action=modifier&amp;etape=1&quot;)">Modifier</a></th>
			<th class="colonne_choix"><a href="javascript:envoyer(&quot;mots_cles.php?page=1&amp;action=supprimer&amp;etape=1&quot;)">Supprimer</a></th>
			<th class="colonne_choix"><a href="javascript:envoyer(&quot;mots_cles.php?page=1&amp;action=fusionner&amp;etape=1&quot;)">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&amp;page=1&amp;etape=1&amp;ancien_mot_cle=aaaeza%27rez%27r%27ez%27%E9%5Cfd%3C%3E" class="mot_normal">aaaeza'rez'r'ez'é\fd&lt;&gt;</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&amp;page=1&amp;etape=1&amp;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&amp;page=1&amp;etape=1&amp;ancien_mot_cle=A%E9ronautique" class="mot_normal">Aéronautique</a></td>
		</tr>
		<tr>
			<th class="colonne_choix"><a href="javascript:envoyer(&quot;mots_cles.php?page=1&amp;action=modifier&amp;etape=1&quot;)">Modifier</a></th>
 
			<th class="colonne_choix"><a href="javascript:envoyer(&quot;mots_cles.php?page=1&amp;action=supprimer&amp;etape=1&quot;)">Supprimer</a></th>
			<th class="colonne_choix"><a href="javascript:envoyer(&quot;mots_cles.php?page=1&amp;action=fusionner&amp;etape=1&quot;)">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) :


et voila ce que j'ai sous ie :