Я использую jquery combobox и полагаюсь на исходный код, предоставленный там. Мне нужны данные из удаленного источника, поэтому я подключил его с помощью ajax. Однако, поскольку AJAX является асинхронным вызовом, мне нужно обновить combobox с данными результатов поиска.Как вызвать поиск в jquery autocomplete combobox?
Как я могу вызвать поиск в выпадающем списке?
Отрывок:
/* In
$.widget("ui.combobox", {
_create: function() {
// input definition
*/
.autocomplete({
delay: 0,
minLength: 0,
source: function(request, response) {
// implements retrieving and filtering data from the select
var term = request.term;
if(term.length >= 2){
var abbreviation = term.substring(0,2);
if(!(abbreviation in cache)){
searchResultData = searchCities(abbreviation);
updateOptions(select, searchResultData);
cache[abbreviation] = 1;
}
}
// updates the search widget with options matching request.term
var responseData = filterOptionsForResponse(select, term);
response(responseData);
},
Остальной код, как это предусмотрено на сайте Jquery. Выше код работает абсолютно нормально, когда searchCities(abbreviation)
возвращает локальный массив объектов.
searchCities(abbreviation)
: возвращает массив городов, соответствующих аббревиатуруupdateOptions(select, data)
: Обновление параметров в выберите выпадающий список с заданными даннымиfilterOptionsForResponse(select, term)
: обновляет combobx с вариантами соответствующих термина на основе Regex
Моя текущая версия поискаГорода с ajax:
function searchCities(abbreviation){
if(!!abbreviation){
$.ajax({
url: "/wah/destinationsJson.action",
dataType: "json",
data: {
term: abbreviation
},
type: "GET",
success: function(data){
updateOptions($("#searchbox"), data.cities);
// $("#searchbox input").trigger('autocompleteselect', data.term);
// return data.cities;
}
});
}
}
Вышеуказанный триггер не вызывает поиск! Может кто-нибудь, пожалуйста, объясните мне, как я могу вызвать поиск в этом поле со списком.
PS: Извините, что не предоставил jsfiddle/jsbin, так как я не мог заставить его отображать его.