所以我搜索但找不到答案。这可能是微不足道的,但我无法看到是什么导致了这一点。
我正在使用jQuery UI Autocomplete,它显示了json结果。所以我知道我的JSON是有效的。但是,它没有过滤任何东西。所以我可以输入一个数字,它只显示所有数据。非常感谢任何提示!
我感谢你的时间!!
这是我的自动填充代码。
$.widget('custom.catcomplete', $.ui.autocomplete, {
_renderMenu: function(ul, items) {
var self = this,
currentCategory = '';
$.each(items, function(index, item) {
if (item.category != currentCategory) {
ul.append('<li class="ui-autocomplete-category">' + item.category + '</li>');
currentCategory = item.category;
}
self._renderItem(ul, item);
});
}
});
$('#category').catcomplete({
source: function(request, response) {
$.ajax({
url: '/wp-content/plugins/pagelines-sections/searchbar/products.json',
dataType: 'json',
data: {
term: request.term
},
cache: true,
success: function(data) {
response($.map(data.products, function(item) {
return {
category: item.category,
label: item.label,
value: item.value
};
}));
}
});
},
minLength: 1
});
答案 0 :(得分:2)
必须根据“Term”参数在服务器端执行过滤。检查服务器使用Firebug或Chrome开发人员工具返回的数据(F12),并确保它取决于“term”参数。
答案 1 :(得分:0)
在本文中完成了关于JQuery UI自动完成组件dude的解释:)