Bonjour,
J'expose le contexte:
Je crée un formulaire qui doit s'adapter au fur et a mesure qu'il est remplis. A savoir, il possède 2 input text au départ (nommés qtt0 et reduc0), dés que l'un de ces éléments perd le focus, une fonction javascript est déclenchée et vérifie qu'ils sont remplis, si c'est le cas, elle ajoute 1 ligne au tableau et dans cette ligne place deux nouveaux champs (només qtt1 et reduc1).
L'idée c'est que ces champs se comportent de la même façon que les premiers et soient capable de créer deux nouveaux champs ... et ainsi de suite.
La fonction est déclenché sur le onblur et possède un paramètre (le numéro de la ligne).
Arborescence (pour mieux comprendre)
form
--table
----thead.../thead
----tbody
------tr
--------td
----------input
--------/td
--------td
----------input
--------/td
------/tr
------tr
--------td
----------input
--------/td
--------td
----------input
--------/td
------/tr
------...
----/tbody
--/table
/form
Mon problème est le suivant:
Je ne parviens pas a attribuer onblur dans les nouveaux inputs. le processus s'arrête donc dés que l'utilisateur a entré les premiers.
(Il semblerais que le problème soit l'argument de la fonction.)
J'ai essayé deux techniques et aucune des deux n'a fonctionné. La première d'entre elles etait de rentrer un text correspondant au nom de ma fonction avec le paramètre
la seconde a été de créer une fonction dynamique:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 function maFonction(num) { [...] var input1 = document.createElement('input'); input1.onblur = 'maFonction('+(num+1)+');'; [...] }
Voila, si vous avez une idée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 function maFonction(num) { [...] var input1 = document.createElement('input'); input1.onblur = function() { maFonction(num+1); }; [...] }
Je précise tout de même que les autres éléments (name, id, etc) sont affectés par la même méthode (input1.name=...) et qu'ils sont effectivement affectés dans ma page.
Merci d'avance pour votre aide.
Partager