使用Select2的createSearchChoice函数

时间:2012-07-26 17:21:29

标签: jquery jquery-select2

我正在尝试使用createSearchChoice函数,允许用户在默认列表不足时输入自己的选择。当我尝试在<select>元素上使用此函数时,出现以下错误:

Error: Error: Option 'createSearchChoice' is not allowed for Select2 when attached to a <select> element.

我尝试使用<input type='hidden'>元素,但现在出现以下错误:

Error: uncaught exception: query function not defined for Select2 'MyInputName'

我更喜欢使用select元素与现有代码保持一致(需要能够选择多个选项),但除了从先前列表中选择之外,还需要用户能够输入自己的选项。

2 个答案:

答案 0 :(得分:28)

天啊,我怎么取消这笔赏金。我惊慌失措,由于恐慌,我能够回答我们都在寻找的东西:

您无法在createSearchChoice上使用select。因此,您必须改为使用input

<input type="hidden" id="category">

修复方法是使用query参数:

$("#category").select2({query:function(query){
  var data = {results: []};
  data.results.push({text: query.term});
  query.callback(data);
}});

这样做是将当前术语添加到选项中,如果它不存在的话。您可以像这样填充results对象:

var data = {results: [{text:'math'},{text:'science'}]};

这解决了我的问题所以我希望它解决了你的问题。我想我们应该在documentation上阅读更多内容。

答案 1 :(得分:2)

我遇到了这个问题,这是因为在同一个字段上调用了select2两次