Typeahead 需要一个具有 value 和 tokens 属性的数据。
token 是用户键入时搜索的内容,value 是自动完成提示中显示的内容,一旦您从列表中选择它。
如果你给它一个字符串,字符串就会变成一个数据。
如果字符串只有 1 个单词,即 @red,那么标记和值都将是 @red。
像这样:
{
value: "@red",
tokens: ["@red"]
}
如果字符串是多个单词,即I bought a shirt @red,那么它会被空格分割成多个标记,如下所示:
{
value: "I bought a shirt @red",
tokens: ["I","bought","a","shirt","@red"]
}
当您输入预输入输入并且您有多个标记时,可以通过输入其中一个标记的开头来找到该值,即输入b 或s 仍将在列表中显示I bought a shirt @red .
我认为您可以通过查看以下示例来接近您想要的内容,其中我指定了第一个令牌,而不是让 typeahead 为我做这件事,这只是为您提供两种方式如何工作的示例。
您可能需要考虑进一步更改 typeahead 的工作方式,因为您正在尝试以一种对用户来说可能不那么直观的方式使用自动完成功能。
看到这个小提琴http://jsfiddle.net/KWftZ/2/
html:
<input type="text" class="typeahead" />
js:
$(".typeahead").typeahead({
local: [{
value: 'I bought a shirt @red',
tokens: ['@red']
}, "@blue", "@green", "@yellow"]
});