我正在使用Select2版本4.0.0并尝试从PHP脚本加载远程JSON,该脚本返回我需要的已格式化数据。问题是,黑暗的力量正在制造一些东西,因为我无法发送请求,没有错误,但没有发送请求,它只是像我一样的魔鬼保持安静。我差点哭了!
我使用LiveScript和Jade作为JavaScript和HTML的替代品,但我会在这里翻译。
首先,我的标记定义了可选字段:
<select id="satan-hates-me"></select>
然后,我能够使它看起来像一个可选择的元素:
$("#satan-hates-me").select2({
placeholder: "Hail",
minimumInputLength: 1,
ajax: { // Here that bad things happen, I mean, don't happen
url: "http://localhost/os/backend/TestServiceOrder.php?req=getEquipments",
dataType: "json",
type: "GET",
quietMillis: 50,
data: function(term) { return { term: term } },
results: function(data) { return data; }
}
});
我执行此操作包装在加载函数中,页面加载后,它看起来像一个可选择的,但不发送任何请求,并且脚本返回完全所需的格式,例如:
[{id: 1, text: "Sadness"}, {id: 2, text: "Depression"}]
就在这里。我可以设计编译器,但我无法在世界上制作一个使用Ajax的插件!拜托,有人可以帮助我吗?
答案 0 :(得分:18)
最后解决了这个问题。
select2 v4 不支持
<input>
。您必须使用<select>
元素
答案 1 :(得分:0)
就我而言,这是我所有模板页脚中对.select2-Elements的一般select2调用:
$('.select2').select2();
事件,尽管我为Ajax-Request选择的根本没有该类(我通过id进行了调用),但我不得不将以上内容更改为
$('select.select2').select2({theme: 'classic'});
我猜select2()使用.select2类创建了几个元素,所以可能会干扰