我可以通过在脚本
中使用以下代码成功获得数组结果 $.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",
});
它似乎不能使ajax GET请求内的select2,因为控制台总是什么都没有。
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,
});
在脚本中,它应该在文档准备好时触发select事件
$(document).ready(function () { ... }
并使用select element声明监视元素,如下所示
<select class="select2" multiple="multiple" name="search[item_ids][]"
id="search_item_ids" />
但不使用隐藏字段
<%= f.hidden_field :item_ids, multiple: "multiple", class: "select2" %>