Bonjour,
dans le cadre d'un projet, je dois réaliser un formulaire avec tout un tas de fonctions dynamiques / ergonomiques, avec JQuery.
Problème : J'ai créé une fonction pour ajouter des champs <input type="text" ... /> dynamiquement. il suffit que l'utilisateur clique sur un bouton pour que le <input> soit généré. Voila mon morceau de code (celui-ci fonctionne) :
Note : la variable "i" est définie un peu plus tôt dans mon code.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 // Ajoute une ligne $('p#addLine').live('click', function() { var myElement = $('<tr id=' + i + '> <td>' + i + '<td> <input class="articles" type="text" name="idArticle-' + i + '" /> </td> <td> <input type="text" name="qte-' + i + '" /> </td> <td id="delete-' + i + '" class="delete">Supprimer ' + i + '</td> </tr>').appendTo('table'); });
Mais... Les <input> possèdent aussi une fonction d'autocomplétion. Cette dernière fonctionnalité ne marche pas pour les <input> qui sont ajoutés dynamiquement. Voila mon code d'autocomplétion :
Les champs "non générés dynamiquement" par JQuery n'ont pas d'autocomplétion.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 // Autocomplétion idArticle $('.articles').autocomplete ({ source: '<%= Url.Action("GetArticles") %>', datatype: 'json', minLength: 2, select: function(event, ui) { // Traitement à effectuer }, scroll: true });
J'imagine peut-être qu'il faut effectuer une sorte de "refresh" pour que mes <input> générés soient pris en compte ?
Partager