Вы должны перебирать их с помощью .each()
выполнить .attr()
в надлежащем объеме:
$("input[type=text]").each(function(){
$(this).autocomplete({
source: "./json.php?id="+$(this).attr("id"),
minLength: 2
}).addClass("ui-widget ui-widget-content ui-corner-left");
}
Edit: Как уже говорилось в комментарии, у вас есть МНОГО полей, как 1500+. Вы можете попробовать повысить производительность, добавив класс в каждое поле и используя селектор .classname
, или, по крайней мере, сузить начальный поиск до input[type="text"]
, хотя jQuery может сделать это уже для оптимизации.
Вы также можете попробовать установить параметр источника в create
или search
событиях автозаполнения, хотя последний может не работать. Не больно видеть, как он выполняет:
$("input[type=text]").autocomplete({
search: function(){
$(this).autocomplete("option", "source", "./json.php?id="+$(this).attr("id"));
},
minLength: 2
}).addClass("ui-widget ui-widget-content ui-corner-left");
В качестве альтернативы вы можете даже связать в фокусе события самого поля ввода, чтобы установить источник:
$("input[type=text]").autocomplete({
minLength: 2
}).focus(function(){
$(this).autocomplete("option", "source", "./json.php?id="+$(this).attr("id"));
}).addClass("ui-widget ui-widget-content ui-corner-left");
посмотреть, если какой-либо из тех, повышения производительности , это интересный тестовый пример, который у вас есть.
взглянуть на мой пост, у вас есть интересный тест, см, если какой-либо из моих предложений улучшить производительности, или если они вообще работают. :) – DarthJDG
Спасибо за предложения, я дам им попробовать. Как я сказал в своем комментарии под вашим ответом, я пересматриваю использование автозаполнения jQuery. Я мог бы изучить другие плагины, но я не хочу тратить лишнее время на эксперименты, так как этот проект должен быть выполнен. Скорее всего, я получу поля автозаполнения старомодным способом - good ol ''<... onKeyup() ... />' и обрабатывать все через пользовательские CSS и JS. Хотелось бы, чтобы это не приходило к этому. – jreed121