如何在bootstrap-typeahead.js中更新源选项

时间:2012-11-22 16:02:21

标签: javascript jquery twitter-bootstrap bootstrap-typeahead

我正在使用bootstrap-typeahead以允许多项选择。 这是demo

原始代码已由@Sherbrow Twitter bootstrap typeahead multiple values

更新

我的问题与以下用例有关:
在插入Alaska值后,我想更新不再显示Alaska值的来源 任何提示?

3 个答案:

答案 0 :(得分:24)

我遇到了同样的问题,这个会为你节省很多时间。我已使用我的代码示例更新了您的旧版jsFiddle。基本的是你需要做

var autocomplete = $('input').typeahead();
autocomplete.data('typeahead').source = newSource;

其中newSource是新数组。现在你只需要一个添加或删除元素的函数,或者你需要做的任何事情。

答案 1 :(得分:6)

没有一个给定的答案对我有用,我不得不销毁原始的typeahead实例并重新初始化它。

$('input').typeahead('destroy').typeahead(options);

答案 2 :(得分:2)

基于typeahead的默认updater方法:

updater: function (item) {
  var pos = this.source.indexOf(item);
  if(pos != -1) {
    var newSource =
      this.source.slice(0,pos)
      .concat(this.source.slice(pos+1));
    this.source = newSource;
  }
  return item
}

Demo with multiple values (jsfiddle)

请注意,考虑到typeahead已初始化,您可以使用$('sel').data('typeahead').source任何地方访问此来源