Javascript JQuery Ajax自动完成不显示结果
我有一个加载Jquery autocomplete的表单,我得到了结果,但它没有显示(带边框的空白)。如图所示: 以下是我的JQuery代码:Javascript JQuery Ajax自动完成不显示结果,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一个加载Jquery autocomplete的表单,我得到了结果,但它没有显示(带边框的空白)。如图所示: 以下是我的JQuery代码: <script type="text/javascript"> // Customer $('input[name=\'customer\']').autocomplete({ delay: 500, source: functi
<script type="text/javascript">
// Customer
$('input[name=\'customer\']').autocomplete({
delay: 500,
source: function (request, response) {
$.ajax({
url: 'getCustomer.php?filter_name=' + encodeURIComponent(request.term),
dataType: 'json',
success: function (json) {
response($.map(json, function (item) {
return {
label: item.c_name,
value: item.c_id
}
}));
}
});
},
select: function (event, ui) {
$('input[name=\'customer\']').val(ui.item.label);
$('input[name=\'customer_id\']').val(ui.item.value);
return false;
},
focus: function (event, ui) {
return false;
}
});
</script>
//顾客
$('input[name=\'customer\']')。自动完成({
延误:500,
来源:功能(请求、响应){
$.ajax({
url:'getCustomer.php?filter_name='+encodeURIComponent(request.term),
数据类型:“json”,
成功:函数(json){
响应($.map(json,函数(项){
返回{
标签:项目c_名称,
值:item.c\u id
}
}));
}
});
},
选择:功能(事件、用户界面){
$('input[name=\'customer\']').val(ui.item.label);
$('input[name=\'customer\u id\']').val(ui.item.value);
返回false;
},
焦点:功能(事件、用户界面){
返回false;
}
});
下面是AJAX结果:
这里有人有过同样的问题吗?顺便说一下,我正在使用管理员LTE模板。还在想我的代码出了什么问题。我已尝试导入其他
Jquery min js
,但仍然无法工作。仍然像那样显示(空白边框)。仅供参考:控制台日志中没有错误。我猜您显示的AJAX响应(作为图像)是在您的$.map()
修改它之前来自服务器的实际响应
您的$.map()
函数迭代来自服务器的json
响应,并尝试在每个元素中使用c\u名称
和c\u id
属性名称。但是来自服务器的json
不包括那些属性名称-它有customer\u id
和name
因此,$.map()
创建了一组空元素,并将它们传递给autocomplete。然后,Autocomplete有一组要显示的元素,但没有任何标签,这就是为什么您看到的下拉列表中有空的水平线,而不是什么都没有,这是在没有响应/匹配时看到的
您只需使用AJAX中相同的属性名称:
response($.map(json, function (item) {
return {
label: item.name,
value: item.customer_id
}
}));