Bonjour,
je viens de faire le tour de quelques sujets qui traitent le problème, mais il me manque un détail.
Je crée un formulaire extensible : je dois rajouter des lignes dynamiquement. Chaque ligne comporte (entre autre) deux listes déroulantes liées, la seconde dépendant du choix fait dans la première. Ça, pas de problème, ça fonctionne très bien.
Mais dans la première liste, je dois ajouter un gestionnaire d'évènement paramétré dans la balise <select>. Après avoir essayé setAttribute et eu quelques idées de meurtre à l'endroit d'un certain éditeur de Internet Explorer, j'ai fini par trouver une autre méthode qui fonctionne partout.
Je crée donc mon élément et ajoute l'évènement comme ceci:
Le problème vient du paramètre que je mets dans les fonctions : mon paramètre "y" est un numérique reçu dans la fonction de génération de la ligne. Mais lorsque la ligne est créée, le code généré ressemble à ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part elt_11.setAttribute("onchange", function(){if(this.value != -1){list_f2_famille(y);ajout_ligne_f2(y);}});
Le "y" est envoyé tel quel alors que je devrais voir par exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 ...<select style="width: 120px;" class="med1" name="FamilleProduit[]" id="FamilleProduit2" onchange="function () { if (this.value != -1) { list_f2_famille(y); ajout_ligne_f2(y); } }">...etc...
J'ai dû oublier un truc quelque part, mais quoi ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 ...<select style="width: 120px;" class="med1" name="FamilleProduit[]" id="FamilleProduit2" onchange="function () { if (this.value != -1) { list_f2_famille(2); ajout_ligne_f2(2); } }">...etc...
Notez que je ne suis pas un grand spécialiste en JavaScript, surtout sur la POO JavaScript.
Une idée à me suggérer ?
Partager