Я использую ввод бутстрап-тегов (объекты как теги - https://bootstrap -tagsinput.github.io / bootstrap-tagsinput / examples / ) для ввода тегов.
Он отлично работает с объектами в качестве тегов для предложений автозаполнения.
Но я тоже пытаюсь активировать Free input. Таким образом, если теги отсутствуют в списке автозаполнения, это позволяет добавлять новые теги.
Вот мой код:
var tags = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('text'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
prefetch: {
ttl: 1,
url:'[Json File Path]'
}
});
tags.initialize();
var elt = $('input#tags');
elt.tagsinput({
tagClass: 'badge badge-primary',
itemValue: function(item) {
return item.id;
},
itemText: 'text',
freeInput: true,
typeaheadjs: {
name: 'tags',
displayKey: 'text',
source: tags.ttAdapter()
}
});
Образец Json:
[{"id":15,"text":"money"},{"id":14,"text":"startup"},{"id":13,"text":"inspiration"},{"id":12,"text":"success"},{"id":11,"text":"challenge"}]