自动完成动态创建的输入

时间:2013-06-10 09:33:09

标签: php javascript jquery dynamic autocomplete

很抱歉询问人们已经提出的问题(例如:

jQuery autocomplete for dynamically created inputs

但是,尽管我在互联网上找到了帮助,但我无法继续工作。 所以,我需要使用动态创建输入的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);
         }
      }

1 个答案:

答案 0 :(得分: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,以找出你真正生成的内容。