我将引导标签输入(对象作为标签)用于标签输入。如官方文档所述Objects as tags,Typehead js自动完成建议可以很好地工作。但是,这仅允许建议的标签作为输入,换句话说,仅允许Json列表中的那些标签。我试图允许freeinputs以及列表中带有默认值的建议标签(例如:stackoverflow标签)。但是我做不对。 这是我的代码:
var cities = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('text'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
local: citilist //{value: 1, text: "Saint Lucia", continent: "Ararat"}...
});
cities.initialize();
var elt = $('#txt');
elt.tagsinput({
itemValue: 'value',
itemText: 'text',
typeaheadjs: {
name: 'cities',
displayKey: 'text',
source: cities.ttAdapter()
},
freeInput: true
});
elt.tagsinput('add', { "value": 1, "text": "Amsterdam", "continent": "Europe" });
答案 0 :(得分:3)
您可以尝试使用此代码。对我来说有用。请用您现有的代码编写。
var count = 0;
$('body').on('keydown', '.tt-input', function (e) {
if (e.keyCode === 9) {
e.preventDefault();
elt.tagsinput('add', {
value: --count,
text: $('.tt-input').val(),
continent: "Unsaved"
});
$('.tt-input').val("");
}
});
负值是新添加的标签,正值是建议的标签。
'.tt-input'
是文本框$('#txt')
类。
编辑:建议count--
到--count
(首先是-1,然后返回值),以便value
的免费输入从-1开始