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) :

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');
            });
Note : la variable "i" est définie un peu plus tôt dans mon code.

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 :

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
            });
Les champs "non générés dynamiquement" par JQuery n'ont pas d'autocomplétion.
J'imagine peut-être qu'il faut effectuer une sorte de "refresh" pour que mes <input> générés soient pris en compte ?