我有以下代码:
$(document).ready(function() {
src = '<?php echo admin_url( 'admin-ajax.php' ); ?>';
// Load the cities straight from the server, passing the country as an extra param
$("#k").autocomplete({
source: function(request, response) {
$.ajax({
url: src,
dataType: "json",
data: {
k : request.term,
dict : $("#dict").val(),
action :"autocomplete_dict"
},
success: function (data) {
response($.map(data, function (item) {
return item.value;
}))
}
});
},
// optional (if other layers overlap autocomplete list)
open: function(event, ui) {
$(".ui-autocomplete").css("z-index", 1000);
$(".ui-autocomplete-loading").css("background:url",'img/indicator.gif no-repeat right center');
},
min_length: 3
});
});
答案表单服务器
["Lebemann","Leben","leben","lebend","lebendig"]
我可以看到从浏览器到服务器的请求,但无法显示服务器的结果。有人可以帮助我。我做错了什么?
最佳答案
我会尝试一下。您的问题在刚接触 jQuery 的开发人员中很常见。 $.ajax 是一个异步函数,这意味着它是一个非阻塞任务。该函数本身在返回任何数据之前就已完成。我认为你必须做的是计时,这样你就知道数据参数中有一些东西。
$.ajax({
url: src,
dataType: "json",
data: {
k : request.term,
dict : $("#dict").val(),
action :"autocomplete_dict"
},
success: function (data) {
$("#K").autocomplete({
Source:data // not sure what Response is but you may need to Response data if its a transformer of some sort.
})
}))
}
});
这首先会触发 ajax,然后一旦请求完成,它就会使用真实数据启动自动完成。
关于javascript - Jquery 中的 Ajax 自动完成无法显示结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34301510/