我正在尝试为我的搜索创建一个建议下拉菜单(类似于谷歌的#)。我想做一个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 :(得分:1)
我认为,这就是你想要的(example):
$('#f').autocomplete({
delay: 300,
source: function(request, response) {
$.get('http://localhost/test.php', {
q: request.term
}).success(function(availableTags) {
response(availableTags);
});
}
});