22

我正在尝试使用 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 元素来与现有代码保持一致(需要能够选择多个选项),但除了从先前的列表中进行选择之外,还需要用户输入自己的选项的能力。

4

2 回答 2

28

天哪,我如何取消这个赏金。我惊慌失措,由于惊慌,我能够回答我们都在寻找的东西:

您不能createSearchChoiceselect. 所以你必须使用一个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'}]};

这解决了我的问题,所以我希望它解决了你的问题。我认为我们应该阅读更多关于文档的内容。

于 2012-07-29T07:40:01.610 回答
2

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

于 2013-04-05T17:43:27.940 回答