我有一个搜索产品的输入框。它使用typeahead来获取和显示返回的数据。
当ajax响应包含的结果与我的输入值不完全匹配时,会出现问题。 例如:
input query = "daffalgane"
JSON data result is =
{products:
{ id:100, label: "dafalgan 500" },
{ id:101, label: "dafalgan 750mg" },
{ id:500, label: "daffalgane 600 mg" },
}
Typeahead仅显示id为500的那个,因为它具有精确(部分)字符串匹配。
为什么没有显示其他结果?对我来说更有意义的是,typehead只显示返回的数据集。
作为参考,这是用于输入框的配置:
$('#suggestions').typeahead({
minLength: 1,
maxItem: 10,
hint: false,
highlight: false,
emptyTemplate: 'NO RESULTS',
source:{
products: {
display: "label",
href: baseurl+'{{slug}}',
url: [{
type: "POST",
url: baseurl+'/suggest',
data: {
for: "{{query}}".trim()
},
}, "data.products"],
},
}});
答案 0 :(得分:0)
我通过升级到typeahead版本2.3.4(http://www.runningcoder.org/jquerytypeahead/)来修复此问题 并将filter参数设置为false。
这可以防止对typeahead完成的结果进行过滤,只显示源。