У меня была проблема, упомянутая Кларенсом. Мне нужно было предоставить HTML , чтобы красиво выглядеть со стилями и изображениями. Это привело к вводу "div", совпадающему со всеми элементами.
Тем не менее, мое значение было только ID-номером, поэтому я не мог позволить, чтобы поиск начинался только с этого. Мне нужен был поиск, чтобы искать несколько значений, а не только идентификационный номер.
Мое решение состояло в том, чтобы добавить новое поле, содержащее только значения поиска, и проверить это в файле пользовательского интерфейса jQuery. Вот что я сделал:
(Это на jQuery UI 1.9.2; на других может быть так же.)
Редактировать функцию фильтра в строке 6008:
filter: function (array, term) {
var matcher = new RegExp($.ui.autocomplete.escapeRegex(term), "i");
return $.grep(array, function (value) {
if (value.searchonly == null)
return matcher.test(value.label || value.value || value);
else
return matcher.test(value.searchonly);
});
}
Я добавил проверку для поля «value.searchonly». Если он есть, он использует только это поле. Если его там нет, он работает как обычно.
Затем вы используете автозаполнение точно так же, как и раньше, за исключением того, что вы можете добавить ключ "searchonly" к вашему объекту JSON.
Надеюсь, это кому-нибудь поможет!