0

我可以通过在脚本中包含以下代码来成功获得数组结果

   $.ajax({
      url: "/search",
      dataType: 'json',
      type: "GET",
      data: {
        query: "test",
      },
      success:function(result){
        console.log(result);
      }
    });

但是当我尝试在 select2-rails 中使用 ajax

$(".select2").select2({
  ajax: {
    url: "/search",
    dataType: 'json',
    type: "GET",
    delay: 250,
    data: { query: "test" },
    processResults: function (data) {
      console.log(data);
      return {
        results: data.results,
      };
    },
    cache: true
  },
  theme: "bootstrap",
  escapeMarkup: function (markup) { return markup; }, 
  multiple: true,
  templateResult: TemplateResult,
  templateSelection: TemplateSelection,
  placeholder: "Type to search",
});

似乎它无法在 select2 中发出 ajax GET 请求,因为控制台总是什么都不是。

select2 在包含资产的部分应该没有问题,因为当我使用预定义数据时它就像魅力一样工作

var data = [{ id: 0, name: 0 }, { id: 1, name: 1 }];

$(".select2").select2({
  data: data,
  theme: "bootstrap",
  escapeMarkup: function (markup) { return markup; }, 
  multiple: true,
  templateResult: TemplateResult,
  templateSelection: TemplateSelection,
});
4

1 回答 1

0

在脚本内部,它应该在文档准备好时触发 select 事件

$(document).ready(function () { ... }

并使用 select 元素声明监视元素,如下所示

<select class="select2" multiple="multiple" name="search[item_ids][]"
 id="search_item_ids" />

但不使用隐藏字段

<%= f.hidden_field :item_ids, multiple: "multiple", class: "select2" %>
于 2016-10-01T15:20:57.010 回答