2012-07-26 54 views
23

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

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

你可以发布你的HTML和JavaScript代码挂钩它? – Prescott 2012-07-29 07:20:26

+0

看起来你需要使用隐藏 - 但你可以在数据连接'数据中设置“选项”:...' – Prescott 2012-07-29 07:39:46

回答

28

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

您不能在select上使用createSearchChoice。所以你必须改用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

+0

噢,我真是希望得到一些赏金!很高兴你知道了。 – Prescott 2012-07-31 06:07:50

+0

事实证明,查询参数不是必需的,但数据参数必须位于相同的构造函数中。表单输入被添加到我的页面中,并且使用了特定于我正在使用的框架的类,并且包含一个带有数据参数的构造函数,并且我试图在页面特有的单独构造函数中添加createSearchChoice。一点定制和一切正在工作。回复较晚,抱歉。 你的回答让我朝着正确的方向前进,所以请保持你的赏金。 :) – jrrdnx 2012-08-03 15:55:00

+0

@jrrdnx你可以请你的部分代码查询和数据参数? – RailinginDFW 2013-03-28 18:21:49

2

我有这个问题,这是由于在同一领域调用select2两次

相关问题