0

很抱歉问了人们已经问过的问题(例如这里:

jQuery 自动完成动态创建的输入

但尽管我在互联网上找到了帮助,但我还是无法完成工作。所以,我需要将 Jquery 自动完成与动态创建的输入一起使用。我的代码如下所示:

$("#add_ligne2").live("click", function() { ...
         if (nb_ligne < 10) {
            var html = "";
            var next_ligne = last_ligne;
            html = '<tr rel="' + next_ligne + '">';
            html += '<td><input type="text" id="autoCompleteProjets' + next_ligne + '"/></td>';
            html += '</tr>';
            $("#content_tr").append(html);
            $('#autoCompleteProjets1', html).autocomplete(autocomp_opt);
         }
      }
      var autocomp_opt = {
         source: "/index/autocomplete",
         minLength: 2,
         select: function(event, ui) {
            /* console.log( ui.item ?
                 "Selected: " + ui.item.value + " aka " + ui.item.id :
                 "Nothing selected, input was " + this.value 
             );*/
            $('.hidden').val(ui.item.id);
         }
      }
4

1 回答 1

0

您使用固定 ID“autoCompleteProjets1”,我相信您想要“autoCompleteProjets”+ next_ligne

$('#autoCompleteProjets' + next_ligne, html).autocomplete(autocomp_opt);

你可能已经有了它,但我还是会提到它 - 确保你在匿名函数之外初始化 last_ligne ,否则你创建局部变量,一旦超出范围就取消设置:

var last_ligne = 0;

然后,你不增加 last_ligne 变量,使用这个:

var next_ligne = ++last_ligne;

最重要的是:在 firefox 中使用 firebug,或者在其他浏览器中使用 firebug,以找出您真正生成的内容。

于 2013-06-10T09:44:08.030 回答