tagsinput& typeahead:无法读取undefined属性'apply'

时间:2016-02-13 11:40:29

标签: javascript twitter-bootstrap-3 typeahead.js bootstrap-tags-input

我在尝试使用tagsinput&时遇到此错误预输入。

HTML:

<section id="examples">
  <div class="example example_typeahead">
    <h3>Typeahead</h3>
    <div class="bs-example">
      <input class="testing" type="text" value="nope" />
    </div>
  </div>
</section>

的javascript:

var data = ['yes', 'yesyes', 'no', 'nope', 'yes again'],
  elt = $('.testing');

elt.tagsinput({
  typeahead: {
    source: data
  },
});

点击列表中的项目后,我收到了应用错误。我还注意到我输入的文字没有删除。 我已经搜索了其他类似的问题,但没有找到合适的答案。

注意:我正在使用此插件进行预先https://github.com/bassjobsen/Bootstrap-3-Typeahead  以及tagsinput http://bootstrap-tagsinput.github.io/bootstrap-tagsinput/examples/

的这个插件

1 个答案:

答案 0 :(得分:2)

猜测,但我不确定,是否已经进行了bootstrap-tagsinput更新,它以某种方式破坏了它对待“旧”引导程序类型的方式。我发现了两个错误,但没有完全找到原因。

第一个问题
错误“无法读取属性'apply'of undefined ”在typeahead中引发,是由尝试定位未定义值的typeahead引起的。问题是here。我为此做了pull request(点击了解详情)。希望我的建议将被合并,如果没有,你可以下载this分叉回购。 拉取请求现在合并为主。

第二期
当令人讨厌的异常是历史时,我注意到在typeahead中进行选择后,bootstrap-tagsinput没有清理。进行选择但是整个字符串或字符串的一部分保留在输入框中。这可以通过使用afterSelect处理程序来解决:

$('#someElement').tagsinput({
  typeahead: {
    source: data,
    afterSelect: function() {
       this.$element[0].value = '';
    }
  }
}) 

通过这两个更改,bootstrap-tagsinput和boostrap3-typeahead按预期工作。见demo - &gt;的 http://jsfiddle.net/bao3vk2m/