Почему я не могу вызвать автозаполнение JQuery после моего метода AJAX

Я пытаюсь создать выпадающее меню с предложениями (по аналогии с Google). Я хочу сделать ajax-вызов, который вызовет некоторый php и вернет массив, который будет предложен. Вот мой код до сих пор:

* Примечание: я еще не реализовал свой PhP, поэтому я просто притворяюсь, что мой ajax был успешным и возвратил массив с именем availableTags:

$(function(){

var timer;
var availableTags;

var getSuggestions = function() {

$.ajax(
{
url: 'http://localhost/test.php',
type: 'GET',
success: function(output)
{
alert('Success from ajax! ' + output);
availableTags = [ "Hello", "Hey"];
}
}
).done(function(data) {
$( "#f" ).autocomplete({
source: availableTags
});
});
}

$('#f').keyup(function() {
clearTimeout(timer);
timer = setTimeout(getSuggestions, 300);

});

});

Моя проблема в том, что, хотя я использую .done для загрузки автозаполнения, он не показывает выпадающий список предложений. Я знаю, что моя функция ajax работает правильно, потому что я использовал ее в других местах. Есть ли другой способ, которым я должен вызывать автозаполнение?

Поэтому, чтобы уточнить дальше — я ищу способ вручную загрузить автозаполнение после моего AJAX. Это возможно?

0

Решение

Я думаю, это то, что вы хотите (пример):

$('#f').autocomplete({
delay: 300,
source: function(request, response) {
$.get('http://localhost/test.php', {
q: request.term
}).success(function(availableTags) {
response(availableTags);
});
}
});
1

Другие решения

Других решений пока нет …