Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 克隆的自动完成输入不工作_Javascript_Jquery_Jquery Autocomplete_Jquery Ui Autocomplete_Jquery Clone - Fatal编程技术网

Javascript 克隆的自动完成输入不工作

Javascript 克隆的自动完成输入不工作,javascript,jquery,jquery-autocomplete,jquery-ui-autocomplete,jquery-clone,Javascript,Jquery,Jquery Autocomplete,Jquery Ui Autocomplete,Jquery Clone,我对jQuery函数clone()有问题。我认为问题在于此方法的with data and events输入参数 最初,我正在编写一个具有动态行的表。我在单击仅放在第一行的按钮时动态添加行。第一行最初包含许多输入字段和组合框。每个字段都由一个ajax调用初始化。字段上的每个操作都会导致一行中整个字段的刷新(过滤)。我还在输入字段上使用自动完成 第一排非常好用。但是,克隆标记时: 如果我没有在第一行中输入值,克隆的和第一行可以正常工作 如果在第一行字段中输入一个或多个值,并且在克隆后,只有第一行字

我对jQuery函数
clone()
有问题。我认为问题在于此方法的
with data and events
输入参数

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

第一排非常好用。但是,克隆标记时:

  • 如果我没有在第一行中输入值,克隆的和第一行可以正常工作
  • 如果在第一行字段中输入一个或多个值,并且在克隆后,只有第一行字段仍然有效。在这种情况下,如果我尝试更改组合框的值(它为所有相关行字段触发更改事件),则第一行的字段将受到影响,尽管在更改自动完成数据时使用了ID。单击按钮克隆小部件时,会动态创建字段、组合框和表行的ID
  • 我写的代码太长了,所以我创建了一个简单的示例并简化了这个示例,但仍然存在相同的问题

    我尝试了很多建议,但都是徒劳的:-( (
    数据。('autocomplete',null)
    自动完成(“销毁”)
    …)

    你对这个问题有什么想法吗


    提前感谢

    除了测试中的输入错误(您是按类而不是按id选择新元素),基本问题是在将其添加到DOM之前应用autocomplete

    JSFiddle:

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

    $('.body').append(clone);
    applyAutoComplete2('#myinput' + inc);
    
    原因是…一些插件使用与DOM元素相关联的存储数据,或者将事件附加到祖先等。这些都不可能发生在断开连接的DOM元素上,所以只需先将其附加到DOM。

    我想你会问这个问题 签入此链接

    applyAutoComplete1(“#myinput1”)


    注意:您的测试示例应该有
    applyAutoComplete2(“#myinput2”);
    (您将按类进行选择)。您需要解释更改修复问题的原因(即问题是什么)。谢谢你的提示。你的解释帮助我找到了问题的解决方案。你的建议就是我发布的案例的解决方案。但是,在实际案例中,我在克隆之前在元素上添加了。自动完成(“销毁”)。我在克隆前分离了第一行上的所有事件,现在所有行都工作正常……再次感谢
    $("button").click(function() {
        inc = inc+1;
        $('#myinput1').clone().attr('id','myinput'+inc).appendTo('.add-this');
        $('#myinput'+inc).val('');
        applyAutoComplete2('#myinput'+inc);
    
    });