Typeahead:显示所有结果而不是精确的字符串匹配
Typeahead: show ALL results instead of exact string matches
我有一个搜索产品的输入框。它使用 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"],
},
}});
我通过升级到 typeahead 版本 2.3.4 解决了这个问题 (http://www.runningcoder.org/jquerytypeahead/)
并将过滤器参数设置为 false。
这可以防止对 typeahead 完成的结果进行过滤,而只显示来源。
我有一个搜索产品的输入框。它使用 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"],
},
}});
我通过升级到 typeahead 版本 2.3.4 解决了这个问题 (http://www.runningcoder.org/jquerytypeahead/) 并将过滤器参数设置为 false。
这可以防止对 typeahead 完成的结果进行过滤,而只显示来源。