使用Ajax的Select2没有发送请求

时间:2015-05-18 18:05:37

标签: javascript jquery ajax jquery-select2

我正在使用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的插件!拜托,有人可以帮助我吗?

2 个答案:

答案 0 :(得分:18)

最后解决了这个问题。

  select2 v4

不支持

<input>

。您必须使用<select>元素

答案 1 :(得分:0)

就我而言,这是我所有模板页脚中对.select2-Elements的一般select2调用:

$('.select2').select2();

事件,尽管我为Ajax-Request选择的根本没有该类(我通过id进行了调用),但我不得不将以上内容更改为

$('select.select2').select2({theme: 'classic'});

我猜select2()使用.select2类创建了几个元素,所以可能会干扰