我需要一个表单域,用户可以在其中输入一些数据,这些数据将自动完成并通过jquery EasyAutocomplete从外部.xml文件中提取:
<input type="text" class="form-control" id="personInput" placeholder="search for a person"/>
。
如果我只有一个领域,那么一切都很好。但是,当用户添加相同类型的新字段时(我正在使用jQuery Duplicate Plugin),自动填充功能不适用于后续字段,仅适用于第一个字段。
我尝试过
$("#personInput").easyAutocomplete(options);
..[id="personInput"]
..document.querySelectorAll("#personInput")
偶
$("div *").filter(function() {return(this.id == "personInput");});
应用一个类(可惜,对于随后生成的字段也是如此)并选择它可以完成相同的工作。
无论用户在页面上拥有多少字段,当用户单击特定字段时,如何使我的自动完成功能适用于所有字段?
修改
我一直在尝试生成不同的ID,现在我已经找到了解决方法:
JS:
$.duplicate = function(){
var next = $('#personInput').length;
[...]
var newElement = *html stuff... with* id="personInput' + next + '" and including a new <script> targeting "personInput' + next.
[...]
next = next + 1;
我发现的主要问题是它是多余的,使用相同的代码生成了许多<script>
标签。尽管如此,它仍然有效。