我有一个包含一行输入的表单。其中一个输入是jQueryUI自动完成,每行旁边都有一个按钮,用于克隆行,以便可以创建其他记录。我将自动完成集设置为识别并绑定到新创建的输入:
$( '.input .my-field' ).on( 'focus', function() {
var $this = $( this );
$this.autocomplete({ ... });
});
我发现的是:
最重要的是,如果我首先创建所有行,一切都按预期工作,但这不是预期的用例。大多数人会输入第一条记录,点击添加另一条记录,输入这些值,点击添加另一条,冲洗,重复。
我还在运行它,但我正在燃烧几个小时,所以我希望有人会知道发生了什么,并且能够使用一个解决方案,我不需要花费数小时才能解决问题。自己的。
答案 0 :(得分:0)
在重新创建autocomplete
输入之前,必须执行两个额外步骤:
aria-haspopup
属性; autocomplete
数据。只是打电话给autocomplete("destroy")
,但由于某种原因,它会破坏原始输入而不是克隆。 jsFiddle的工作示例。相关代码如下:
var clone = $(...)
.clone(true)
.removeAttr("aria-haspopup")
.data("autocomplete",null);