我正在使用select2(4.0.3)。我的代码正在运行,并在页面加载和搜索时获取结果。但是,在执行远程搜索并从列表中选择项目后,我的initSelection块再进行2次ajax调用,其中search param是所选值的ID。我只希望我的initselection在页面加载下拉列表的预填充值时起作用。任何帮助表示赞赏。
$(".venue-dropdown").select2({
placeholder: "Enter venue name",
allowClear: true,
ajax: {
url: $('#contextPath').val() + "/ajax/get-venue",
dataType: 'json',
delay: 250,
data: function (params) {
return {
search: params.term, // search term
page: params.page
};
},
processResults: function (data) {
return {
//results: data.items,
results: $.map(data, function (obj) {
return {
id: obj.uniqueName,
text: obj.name + ' (' + obj.postcode + ')'
}
}),
};
},
cache: true
},initSelection: function(element, callback) {
var id = $(element).val();
if (id && id !== "") {
$.ajax($('#contextPath').val() + "/ajax/get-venue", {
data: {
search: id
},
dataType: "json",
cache: false,
}).done(function(data) {
var result = {'id':data[0].uniqueName,'text':data[0].name};
callback(result);
});
}
},
escapeMarkup: function (markup) {
return markup;
},
minimumInputLength: 2
});
搜索时首先制作ajax>>>得到会场?搜索= EH8
选择选项2后,遵循ajax请求
GET-场地搜索= sportexercisepleasanceeh89tj&安培; _ = 1488967266450
GET-场地搜索= sportexercisepleasanceeh89tj&安培; _ = 1488967266451