Я использую категории автозаполнения.Это работает нормально, если я ввожу в поле ввода напрямую.Однако, если я использую javascript для установки значения в поле ввода, автозаполнение не срабатывает.
Часть виджета идентична jqueryui site .Вот пример jsfiddle
//sample HTML
<input id="search">
<button id="button">Click</button>
//sample JS
$(document).on("keyup", '#search', function(event){
$.ajax{
...
autocomplete_data = ajax_provided_data;
$("#search").catcomplete({
source: function(request, response){
console.log("source");
response(autocomplete_data);
},
select: function(event, ui){
//do stuff
}
});
}
});
$(document).on("click", "#button", function(event){
$("#search").val("abcd");
$("#search").keyup();
});
Когда я нажимаю #button
, значение входа изменяется, запускается keyup()
и запускается Ajax.Однако catcomplete()
не срабатывает.Это никогда не приводит к console.log в функции source
.Если я вручную введу в поле ввода, все будет работать нормально, и в консоли будет напечатано «source».
Я также попытался this , чтобы вызвать нажатие клавиши пробела.Все еще не повезло.
Однако это сработает, если я нажму кнопку, а затем вручную введите пробел в поле ввода.
Как мне решить эту проблему?