似乎找不到使用typeahead禁用过滤的方法。基本上我只需要自动完成(或者说是下拉搜索提示)功能。我正在进行邮政编码搜索,结果邮政编码不一定与查询的邮政编码匹配。如何让它显示所有匹配而不再对它们进行额外过滤?
以下是我的代码:
var dealers = new Bloodhound({
datumTokenizer: function (d) {
return Bloodhound.tokenizers.whitespace(d);
},
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: '/form/find-dealer?postalCode=',
prepare: function (query, settings) {
settings.url += encodeURIComponent(query);
settings.type = 'POST';
settings.contentType = "application/json; charset=UTF-8";
return settings;
}
}
});
$('input[name=postalCode]').typeahead({
minLength: 3
}, {
name: 'dealers',
display: function (data) {
return data.title;
},
source: dealers.ttAdapter()
});
注意:我知道以这种方式进行邮政编码搜索似乎有点尴尬,但设计师的目的是让用户可以通过经销商名称和邮政编码互换搜索。
其他信息: typeahead.bundle.js - v0.11.1
答案 0 :(得分:1)
似乎没有任何(匹配)查询显示所有内容: https://github.com/twitter/typeahead.js/issues/1308
虽然有些人尝试使用minlength = 0,但是: https://github.com/twitter/typeahead.js/issues/1251
它看起来有可能在旧版本中: https://github.com/twitter/typeahead.js/pull/719
顺便说一下插件已不再开发且手册不完整。在这个分支上可以找到一个改进的:https://github.com/corejavascript/typeahead.js/tree/master/doc
话虽如此,你可能会更好地使用另一个autosuggest,或者像select2这样的插件,它会默认显示结果,并且可以使用外部源。
答案 1 :(得分:1)
如果您想向AJAX&发送查询从您的数据库获取数据&为typehead的结果添加所有JSON结果(你有一个带数据库的数据过滤器&用AJAX和JSON发送干净的数据,但是类型头有额外的过滤而不显示任何或你的一些数据),你必须这样做:
打开bootstrap-typeahead.js&发现
slider.setThumbImage(UIImage.init(named: "dot"), for: .highlighted)
并将其替换为:
item.toLowerCase().indexOf(this.query.toLowerCase())
您是否可以显示Ajax JSON的所有结果......
答案 2 :(得分:0)
不漂亮,因为该库已经分叉并且不再受创建者的支持,但是这个修复程序为我做了https://github.com/twitter/typeahead.js/pull/1212。基本上,当处于远程模式时,它会返回所有匹配,这实际上是我所看到的正确行为。