0

我有一个jQuery功能clone()问题。我认为问题在于此方法的withDataAndEvents输入参数。克隆自动完成输入无法正常工作

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

第一行完美工作。然而,克隆的标签时:

  1. 如果我没有在第一行,克隆和第一排做工精细的输入值
  2. 如果我在第一行字段后输入一个或多个值我克隆,只有第一行字段仍然有效。在这种情况下,如果我尝试更改组合框的值(引发所有相关行字段的更改事件),则在更改自动填充数据时,尽管使用了Ids,但第一行的字段会受到影响。单击按钮克隆小部件时,会动态创建字段,组合框和表格行。

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

我想,我徒劳:-( 发现像thisthis onethis one许多建议(data.('autocomplete', null)autocomplete("destroy") ...)

你有关于这个问题的想法?

感谢提前

+1

注意:您的测试示例应该有'applyAutoComplete2('#myinput2');'(您正在按类选择)。 – 2014-10-08 09:42:53

回答

1

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

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

我只是颠倒这两条线的顺序:

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

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

+0

感谢您的提示。你的解释帮助我为我的问题找到解决方案。你的建议是我发布的案例的解决方案。但是,在真实情况下,我在对元素进行排序之前在元素上添加了.autocomplete(“destroy”)。在克隆第一行之前,我已将所有事件分开,现在所有行都正常工作......再次感谢 – javaxiss 2014-10-13 13:39:53

0

我觉得你问这个 入住这个环节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); 

}); 
+0

您需要解释*为什么*您的更改修复了问题(即问题是什么)。 – 2014-10-08 11:26:32

相关问题