使用Bootstrap 3 typeahead错误输入Bootstrap标签

时间:2016-01-07 11:46:18

标签: twitter-bootstrap twitter-bootstrap-3 bootstrap-typeahead bootstrap-tags-input

我将Bootstrap tags inputBootstrap 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提到的修复,我尝试编写一些自定义代码来清除字段,但我总是遇到某种错误,无法清除输入字段。

1 个答案:

答案 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 "";
      },

不行。