javascript - jquery自动完成不显示结果
问题描述
我尝试通过 id 类别使用 jquery 过滤器进行自动完成,当我键入结果未显示时,如下图所示:
这是我的代码 javascript:
<script type="text/javascript">
$(function() {
$(".keyword").autocomplete({
source: function(request, response) {
$.ajax({
url: "search/autocomplete",
type: "GET",
dataType: "json",
data: {'id':1},
success: function(data) {
response($.map(data, function(item) {
return {
label: item.name,
value: item.id
};
}));
}
});
},
select:function(event,ui) {
$(".keyword").val(ui.item.label);
return false;
},
minLength: 2,
}).bind('focus', function () {
$('.ui-autocomplete').css('z-index','9999').css('overflow-y','scroll').css('max-height','300px');
// $('.ui-autocomplete').css('background','#09121a').css('color','#fff');
// $('.ui-menu .ui-menu-item-wrapper').css('padding','11px 1em 3px 1.4em !important');
// $(this).autocomplete("search");
// var btncategory = $('.btn-category').width();
// var left = '-'+btncategory+'px';
});
});
</script>
如果我输入“a” - 我什么都看不到,但是当我删除“a”时 - 我看到所有三个。所以看起来 jQuery 不知道它应该在 object.name 中查找一个值。
解决方案
正如 Tan Duong 所说,您的响应仅包含名为 的属性value
。它无法找到name
and id
,因此您的结果显示空白数据。
将您的成功功能更改为:
success: function(data) {
response($.map(data, function(item) {
return {
label: item.value,
value: item.value
};
}));
}
推荐阅读
- android - 绘制 250k 点的最佳方法是什么?
- vim - 有没有办法在不使用匹配的情况下突出显示默认的 vim 关键字?
- php - Laravel 如何优化内存中昂贵的计算?
- express - 如何优雅地处理 express 中的 promise 拒绝
- html - 如果父容器旋转,如何不旋转文本
- loops - 如何在haskell中使用do和while循环
- python - 为什么使用 plt.imshow 显示后输出与变量的值不同?
- oracle - 如何将 MMMYYYY 字符串转换为 Oracle 中的日期?
- azure - 我需要在我的 Azure AD 中为用户设置“工作信息”,例如“部门”。Set-AzADUser 没有此参数。还有其他命令吗?
- node.js - Mongodb $lookup 与预初始化