Bonjour a tous ...

J'ai un petit souci d'incompatibilité entre Mozilla et IE7 avec getElementById

J'explique mon cas. sur une page PHP, j'ai créé un formulaire dynamique un peu à la manière d'excel pour la saisie de chiffres d'un bilan que l'on peut considéré comme comptable. Il y a donc plusieurs ligne et parfois plusieurs colonnes. pour chaque colonne j'ai des lignes à saisir et des sous-totaux calculés automatiquement par une fonction javascript. A la fin du document, j'ai un total qui est calculé en faisant la somme des sous totaux.

Pour différencier dans mon formulaire (créé en PHP) j'ai mis un ID à chaque sous-total. De cette manière j'appelle les sous totaux pas le getElementById et les autres par getElementsByName.

Mon imcompatibilité entre IE et firefox, est que mon total ne prend pas en compte les sous-totaux, mais tous les champs :

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
var i=0;
	var j=0;
	var total=0;
	var m=0;
	while(i != nbgroup) //tant que j'ai pas atteins le nombre de sous-totaux passés en paramètres
	{
            if(document.getElementById(nomd+j)) //je regarde si c un sous-total
	    {
		alert(nomd+j); //affichage du champ qui devrait etre un sous total
		if(i<nbgroup-1) // je ne prend pas en compte mon dernier Id qui est le champ total
		{
		     if(document.getElementById(nomd+j).value!="") //vérification si la valeur n'est pas vide 
		     {
			total = total + parseInt(document.getElementById(nomd+j).value); // somme des sous-totaux
		     }
		}
		m=j; // enregistrement de la position du dernier ID (donc mon champ total)
		i = i+1;
	    }
	    j = j+1;
	}
	alert(nomd+m);
	document.getElementById(nomd+m).value=total; //affectation de mon total
Lorsque je fais mon premier alert sous FF, je bien le champ correspondant à l'id que j'ai saisi, mon sous-total est correct, et mon total également. Sous IE, il affiche bien le premier sous-total (qui est le premier champ de mon formulaire), puis ensuite ne se préoccupe plus des id et m'affiche les champs qui ne comportent pas d'id, ce qui fausse mon sous-total, et surtout qui m'affiche mon total dans un autre champ que celui désiré ...

Quelqu'un aurait-il une idée ???