Моя цель - создать элемент автозаполнения, который извлекается из базы данных SQL на основе текущего ввода.Это необходимо, потому что количество элементов, в которых выполняется поиск, намного превышает максимальную емкость десериализатора json.
У меня это работает с плагином smartAutoComplete, но я хочу объединить и использовать плагин автозаполнения пользовательского интерфейса jQuery.Похоже, что плагин вызывает ._renderMenu до того, как моя функция-источник ничего не возвращает, и к телу страницы ничего не добавляется.Я исправил это с помощью deferred.promise () при использовании smartAutoComplete, но jQuery UI, похоже, не нравится это решение.Какие-нибудь советы?Спасибо!
$("input#punch_box").autocomplete({
source: function (request, response) {
var dfd = new jQuery.Deferred();
var resArr = [];
MyAjax({
url: '../GetMemberFiltered',
data: { search_string: request.term },
success: function (data, status) {
$(data).each(function (indx, result) {
resArr.push({ value: result.first_name + " " + result.last_name + " " + result.email,
member_id: result.member_id
});
});
dfd.resolve(resArr);
}
});
return dfd.promise();
},
delay: 200
});
function monkeyPatchAutocomplete() {
var oldFn = $.ui.autocomplete.prototype._renderItem;
$.ui.autocomplete.prototype._renderItem = function (ul, item) {
alert(item.value);
return $("<li></li>")
.data("item.autocomplete", item)
.append("<a>" + item.value + "</a>")
.appendTo(ul);
};
};