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

库允许您使用 onResultonCachedResult 回调来处理搜索结果,您可以将其用于您的杠杆作用。

$("#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 初始字符串搜索的主要内容,如果未能解决你的问题,请参考以下文章

jQuery Tokeninput:只读不工作

jQuery Tokeninput / 未找到结果

如何在 Rails 中使用 jquery tokeninput?

使用 jquery tokeninput 和acts_as_taggable_on

jQuery-tokeninput 失败:“术语”未定义?

传递给 Jquery 令牌输入的附加参数