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...
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()
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"]; } } }
Quelqu'un sait-il comment contourner ce problème sans changer complètement de mécanisme svp?
Partager