Salut à tous, j'ai développé un script de gestion de champs de formulaire dynamiques qui fonctionne à merveille sour FireFox (amen ^^) mais qui ne fonctionne pas du tout sous IE...

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
 
 	//des compteurs pour chaque type de donnée
 	var id_actions_immediates = 0;
 	var id_actions_correctives = 0;
 	var id_actions_preventives = 0;
 
 	//la fonction principale qui gère l'ajout des lignes
 	function AddLine(id_table, ref, text, qui, date)
 	{
 	 	//on récupère le compteur pour le type de donnée souhaité
 	 	switch(id_table)
 	 	{
 	 		case 'action_immediate':
 	 	 		var id = id_actions_immediates++;
 	 	 		break;
 	 		case 'action_corrective':
 	 	 		var id = id_actions_correctives++;
 	 	 		break;
 	 		case 'action_preventive':
 	 	 		var id = id_actions_preventives++;
 	 	 		break;
 
 	 	}
 
 	 	//on met en mémoire les données de ce type pour ne pas les perdre lors du changement de valeur du innerHTML
 	 	var DataTable = new Array;
		for(i=0;i<id;i++)
		{
			DataTable[i] = null;
 
			if(document.getElementById(id_table + '_ref' + i))
			{
				DataTable[i] = new Array;
				DataTable[i]["ref"] = document.getElementById(id_table + '_ref' + i).value;
				DataTable[i]["text"] = document.getElementById(id_table + '_text' + i).value;
				DataTable[i]["qui"] = document.getElementById(id_table + '_qui' + i).value;
				DataTable[i]["date"] = document.getElementById(id_table + '_date' + i).value;
			}
		}
 
 	 	//on ajoute la ligne au tableau correspondant au type choisi
 		document.getElementById(id_table).innerHTML += '<tr id="' + id_table + id + '">' +
 	 													 '<td><input type="hidden" 			id="' + id_table + '_ref' + id + '" 	name="' + id_table + '_ref[]" 	value="' + ref + '"></input>' + 
 	 													 	 '<input type="text" class="at" id="' + id_table + '_text' + id + '" 	name="' + id_table + '_text[]" 	value="' + text + '" maxlenght="255"></input></td>' + 
 	 													 '<td><input type="text" class="at" id="' + id_table + '_qui' + id + '" 	name="' + id_table + '_qui[]" 	value="' + qui + '" maxlenght="30"></input></td>' + 
 	 													 '<td><input type="text" class="at" id="' + id_table + '_date' + id + '" 	name="' + id_table + '_date[]" 	value="' + date + '" maxlenght="10"></input></td>' +
 	 													 '<td><a href="javascript:void(0);" onClick="DeleteLine(\'' + id_table + id + '\');"><img src="{ babInstallPath }skins/ovidentia/images/Puces/delete.png" alt="suppr"></a></a></td>' +  
 	 													'</tr>';
 
 	 	//puis on remet les données aux bons emplacements
 		for(i=0;i<id;i++)
		{
 			if(DataTable[i] != null)
 			{
	 			document.getElementById(id_table + '_ref' + i).value = DataTable[i]["ref"];
	 			document.getElementById(id_table + '_text' + i).value = DataTable[i]["text"];
				document.getElementById(id_table + '_qui' + i).value = DataTable[i]["qui"];
				document.getElementById(id_table + '_date' + i).value = DataTable[i]["date"];
 			}
		}
 	}
Voilà ce code est parfait pour ce que je veux faire mais grrr comme par hasard ça ne fonctionne pas sous IE, le symptome est que rien ne passe quand je click sur le bouton qui appel la fonction AddLine()

Quelqu'un sait-il comment contourner ce problème sans changer complètement de mécanisme svp?