Javascript JQuery在生成的输入上使用“自动完成”;回收;身份证件

Javascript JQuery在生成的输入上使用“自动完成”;回收;身份证件,javascript,jquery,autocomplete,Javascript,Jquery,Autocomplete,我有一个由带有输入的行组成的表。每当在每行的第一个输入中选择自动完成值时,都会动态克隆和添加行 每次添加新行时,我都要对第一个输入应用.autocomplete。通常这很容易,如图所示 我有一个稍微不同的方法,在这里我改变输入的ID,在这里进行选择。我想这就是为什么我不能将自动完成应用于克隆行,但我不明白为什么 下面是有问题的代码() //换行。(我在我的生产代码中有用于改进功能的附加代码) 函数换行符(){ //将该行发送到后端以更新mysql。返回的数据为 //“自动完成”行的mysql i

我有一个由带有输入的行组成的表。每当在每行的第一个输入中选择自动完成值时,都会动态克隆和添加行

每次添加新行时,我都要对第一个输入应用.autocomplete。通常这很容易,如图所示

我有一个稍微不同的方法,在这里我改变输入的ID,在这里进行选择。我想这就是为什么我不能将自动完成应用于克隆行,但我不明白为什么

下面是有问题的代码()

//换行。(我在我的生产代码中有用于改进功能的附加代码)
函数换行符(){
//将该行发送到后端以更新mysql。返回的数据为
//“自动完成”行的mysql id。此处由随机数模拟
var randomNumber=Math.floor(Math.random()*100)+1
$(“#idLine 0”).attr(“id”,“idLine”+随机数)
//复制最后一行
var row=$(“#test tr:last”).clone(true);
//将ID“idLine0”(我为底线保留了该ID)指定给新行。
$(“.AC”,行).val(“”).attr({
“id”:“idLine0”,
“占位符”:“自动完成在此处不起作用”
})
第行插入符(“#test tr:last”);
//$(“.AC”).autocomplete(“销毁”)
applyAutocomplete(“idLine0”)
}
函数applyAutocomplete(id){
$(id).自动完成({
资料来源:[{
值:“ActionScript”,
类型:“类型1”,
评论:“无”
}, {
值:“TestScript”,
类型:“类型2”,
评论:“地段”
}, {
值:“字母脚本”,
类型:“类型3”,
评论:“甚至更多”
}, {
值:“BravoScript”,
类型:“类型4”,
评论:“很多很多”
}, {
值:“CharlieScript”,
类型:“类型5”,
评论:“评论”
}, {
值:“DeltaScript”,
类型:“类型6”,
评论:“无可奉告”
}],
最小长度:1,
打开:功能(事件、用户界面){
var header=“
  • ”) .data(“ui自动完成项”,项) .append(““+item.value”+ “”+item.type+ “”+item.comment+“”) .附录(ul); }; }
  • 在解决了您的问题后,我看到了这一行:

    var row = $("#test tr:last").clone(true);
    
    这条线就是问题所在,更具体地说是“真正的”布尔参数。 正如您在上看到的:

    一个布尔值,指示是否应将事件处理程序与元素一起复制

    这基本上意味着该元素上的所有元素都将是clonned、Handdler、Trigger等。。。每次使用第一个输入元素时,都可以看到自动完成工作和克隆行

    因此,改变这一点:

    var row = $("#test tr:last").clone(true);
    
    为此:

    var row = $("#test tr:last").clone();
    
    我制作了一个更“干净”的JSFIDLE版本:

    var row = $("#test tr:last").clone();