我将Bootstrap tags input与Bootstrap 3 Typeahead集成在一起,在输入字段上提供数据提供,如下所示:
<input type="text" name="search" id="search" data-provide="typeahead" autocomplete="off">
并在我的js文件中初始化它,如:
$('#search').tagsinput({
confirmKeys: [44],
typeahead: {
source: $.getJSON('/Functions/hints.php')
}
});
一切正常,hints.php发送json,typeahead作品,标签工作,但是当我尝试从建议列表中添加项目时遇到问题。例如,我想搜索&#34;衣服&#34;,我输入&#34; cl&#34;并且&#34;建议衣服,我从&#34;下拉&#34;中选择该项目。列表,它作为标签插入,但问题是&#34; cl&#34;保留在输入字段中,我收到错误提示&#34; TypeError:undefined不是对象(评估&#39; data [option] .apply&#39;)&#34;。
我还注意到,如果我开始输入一个没有任何建议的术语(没有启动预先输入),它就可以正常运行,它会变成一个没有问题的标签,输入是在变成标签后清除。一旦初始化了typeahead,我才会收到此错误。所以我可以输入非建议的单词,只要我想要并且它可以正常工作,但是一旦我输入一封信给我一些建议,我总是会得到所提到的错误,无论这封信是否被识别,我得到建议或不建议的东西,如果我从列表中选择项目或输入我自己的单词。
我在这个link上尝试了xplicit提到的修复,我尝试编写一些自定义代码来清除字段,但我总是遇到某种错误,无法清除输入字段。
答案 0 :(得分:0)
当然,为时已晚,但无论如何我都会回答。
我遇到了类似的问题,并使用了一种解决方法。
bootstrap-tagsinput.js中有一个函数,用于更新标签列表并将文本返回到预先输入(第329行):
updater: function (text) {
self.add(this.map[text]);
return this.map[text];
},
我不知道为什么,但它将tag的文本返回到输入字段。所以我只是将此代码更改为:
updater: function (text) {
self.add(this.map[text]);
return "";
},
不行。