如何通过Bootstrap标签输入和typeahead.js允许自定义值?

时间:2015-09-14 13:48:41

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

我正在尝试将Bootstrap Tags Input v.0.5.0与typeahead.js v.0.11.1和Bootstrap v3.3.5一起使用。它对我有用,但我无法输入我的先行源数组中不存在的标记。为了允许输入源数组中不存在的项,我需要更改什么?

这是我的示例html:

<input type="text" id="dailyTagsInput" name="dailyTagsInput" class="form-control">

这是我的样本js:

    $scope.states = ['Alabama', 'Alaska', 'Arizona'];

$scope.statesSource = new Bloodhound({
  datumTokenizer: Bloodhound.tokenizers.whitespace,
  queryTokenizer: Bloodhound.tokenizers.whitespace,
  local: $scope.states
});

$('#dailyTagsInput').tagsinput({
  maxChars: 50,
  maxTags: 10,
  trimValue: true,
  freeInput: true,
  typeaheadjs: {
    name: 'states',
    source: $scope.statesSource.ttAdapter()
  }
});

1 个答案:

答案 0 :(得分:1)

current tagsinput documentation表示只有在使用字符串作为标记时才可以使用“自由输入”。这让我觉得使用Typeahead + Bloodhound作为源可能会与freeInput选项冲突。

我会尝试添加一个预先输入源作为字符串数组而不是使用Bloodhound。

$('#dailyTagsInput').tagsinput({
  ...
  typeaheadjs: {
    name: 'states',
    source: $scope.statesSource
  }
});