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