克隆的自动完成输入不起作用

Cloned autocomplete input not working

本文关键字:输入 不起作用      更新时间:2023-09-26

我对jQuery函数clone()有问题。我认为问题出在该方法的withDataAndEvents输入参数上。

最初,我正在编写一个具有动态行的表。当点击只放在第一行的按钮时,我会动态添加行。第一行最初包含许多输入字段和组合框。每个字段都由一个ajax调用初始化。对一个字段的每个操作都会导致对一行的整个字段进行刷新(筛选)。我还在输入字段上使用自动完成。

第一排效果很好。但是,当克隆标签时:

  1. 如果我没有在第一行中输入值,则克隆的和第一行可以正常工作
  2. 如果在第一行字段中输入一个或多个值,并且在克隆之后,只有第一行字段仍然有效。在这种情况下,如果我试图更改组合框的值(它为所有相关的行字段触发一个更改事件),尽管在更改自动完成数据时使用了Id,但第一行的字段会受到影响。字段、组合框和表行的ID是在单击按钮克隆小部件时动态创建的

我写的代码太长了,所以我创建了一个fiddle并简化了这个案例,但仍然有同样的问题。

我尝试了很多建议,但都是徒劳的:-((data.('autocomplete', null)autocomplete("destroy")…)

你对这个问题有想法吗?

提前感谢

除了测试中的拼写错误(您是按类而不是按id选择新元素)之外,基本问题是在将其添加到DOM之前应用自动完成。

JSFiddle:http://jsfiddle.net/TrueBlueAussie/87jcw1y0/2/

我只是颠倒了这两行的顺序:

$('.body').append(clone);
applyAutoComplete2('#myinput' + inc);

原因。。。一些插件使用与DOM元素相关联的存储数据,或将事件附加到祖先等。这些都不可能发生在断开连接的DOM元素上,所以只需先将其附加到DOM即可。

我想你在问这个签入此链接http://jsfiddle.net/bsarunmca/87jcw1y0/3/

applyAutoComplete1('#myinput1');

$("button").click(function() {
    inc = inc+1;
    $('#myinput1').clone().attr('id','myinput'+inc).appendTo('.add-this');
    $('#myinput'+inc).val('');
    applyAutoComplete2('#myinput'+inc);
});