Jquery TokenInput 初始字符串搜索
Posted
技术标签:
【中文标题】Jquery TokenInput 初始字符串搜索【英文标题】:Jquery TokenInput Initial Strings Search 【发布时间】:2019-01-21 15:33:47 【问题描述】:我使用 jquery Tokeninput 库来实现自动完成功能。我目前正在努力解决我在搜索结果中遇到的问题。当我输入某些内容时,它会返回正在输入的字符的所有单词。我希望它只返回初始字符串匹配的搜索结果。
例如,如果我输入“Na”,它会返回所有带有“Na”的单词,例如“Canada”、“Fi nancial”等。
我只希望它返回以“Na”开头的单词,例如“Nation”、“Nascar”等等。
我是 javascript 新手,在更新此脚本时遇到了麻烦。有人可以帮忙吗?
这是我正在使用的库 - https://github.com/loopj/jquery-tokeninput/blob/master/src/jquery.tokeninput.js
$("#demo-input").tokenInput([
id: 7, name: "Canada",
id: 11, name: "Financial ",
id: 13, name: "Nation",
id: 17, name: "Nascar",
id: 19, name: "USA",
id: 31, name: "Economics"
]);
【问题讨论】:
【参考方案1】:我检查了库代码,但我认为您不能传递任何选项来更改默认搜索类型,该类型会检查值中是否存在搜索查询。但是,我发现了一个您可以使用的方法(IMO 除非必要,否则您不应该使用)。
工作示例here
库允许您使用 onResult
和 onCachedResult
回调来处理搜索结果,您可以将其用于您的杠杆作用。
$("#demo-input").tokenInput([
id: 7, name: "Canada",
id: 11, name: "Financial ",
id: 13, name: "Nation",
id: 17, name: "Nascar",
id: 19, name: "USA",
id: 31, name: "Economics"
],
onResult: filterSearchResults,
onCachedResult: filterSearchResults
);
function filterSearchResults(items)
var query = $("#demo-input").parent().find("ul li input").val().toLowerCase();
return items.filter(i => i.name.toLowerCase().startsWith(query));
【讨论】:
以上是关于Jquery TokenInput 初始字符串搜索的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Rails 中使用 jquery tokeninput?