我正在使用tokenfield for bootstrap和twitter typeahead,我能够做到这一点。
http://i.stack.imgur.com/dtFbj.png
我只希望显示值。
这是我的JS:
var engine = new Bloodhound({
local: bloodhound_tag_data,
datumTokenizer: function(d) {
return Bloodhound.tokenizers.whitespace(d.value);
},
queryTokenizer: Bloodhound.tokenizers.whitespace
});
engine.initialize();
$('#id_tags').tokenfield({
typeahead: [null, { source: engine.ttAdapter() }]
});
' bloodhound_tag_data'是一个带有' id'的对象列表。和'价值'密钥。
答案 0 :(得分:2)
我遇到了同样的问题。在您的代码中,尝试使用以下内容替换typeahead: [null, { source: engine.ttAdapter() }]
:
typeahead: [null, {
display: 'value',
source: engine.ttAdapter()
}]
这解决了我的情况,我观察到与你的截图非常相似的东西。
某些背景信息:对于像我这样经验不足的人来说,typeahead.js的display
选项的文档似乎有点难以理解。它说(我认为与粗体相关的词语):
对于给定的建议,确定它的字符串表示形式。 在a之后设置输入控件的值时将使用此选项 建议被选中。可以是密钥字符串,也可以是函数 将建议对象转换为字符串。默认为字符串化 建议。
在这种情况下,'value'
是数组bloodhound_tag_data
中某个元素字段的键。
快乐的编码!
如果我的答案中的任何内容都可以改进,请添加评论并提出建设性意见。谢谢!