当我输入未显示的结果时,我尝试通过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中查找值。
答案 0 :(得分:0)
正如Tan Duong所说,您的回复仅包含名为value
的属性。它找不到name
和id
,因此您的结果显示空白数据。
将您的成功功能更改为此:
success: function(data) {
response($.map(data, function(item) {
return {
label: item.value,
value: item.value
};
}));
}