Мне нужно поле формы, в которое пользователь вводит некоторые данные, которые автоматически заполняются и извлекаются из внешнего XML-файла через jquery EasyAutocomplete :
<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");});
Применение класса (который, увы, остается таким же и для последующих сгенерированных полей) и выбор его делает то же самое.
Как мне настроить функцию автозаполнения для всех полей, когда пользователь нажимает на это поле, независимо от количества полей на странице?
Редактировать
Я поиграл с созданием различных идентификаторов, и на данный момент я нашел этот обходной путь:
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>
с тем же кодом.Тем не менее, это работает.