Javascript 每次我打开Select2时,它都会进行ajax调用

Javascript 每次我打开Select2时,它都会进行ajax调用,javascript,jquery,select2,Javascript,Jquery,Select2,我试图只在用户打开select2控件时填充它,但它会进行大量ajax调用,对于大量ajax调用,我的意思是它会继续发送post请求,而且我无法关闭select2,我做错了什么?提前谢谢 $('#select').select2().one('select2-open', function(){ $.ajax({ url: '/url', data: { data: data }, type: "POST" }).done(function (da

我试图只在用户打开select2控件时填充它,但它会进行大量ajax调用,对于大量ajax调用,我的意思是它会继续发送post请求,而且我无法关闭select2,我做错了什么?提前谢谢

 $('#select').select2().one('select2-open', function(){
$.ajax({
    url: '/url',
    data: {
        data: data
    },
    type: "POST"
}).done(function (data) {
    var optionhtml = "<option value=''></option>";
    for (var i = 0; i < data.length; i++) {
        optionhtml += "<option value='" + data[i].field_id + "'>" + data[i].field + "</option>";
    }
    $("#select").html(optionhtml);
    $("#select").select2({
        allowClear: true
    });
    $("#select").select2('open');
});
$('select').select2().one('select2-open',function(){
$.ajax({
url:“/url”,
数据:{
数据:数据
},
类型:“职位”
}).完成(功能(数据){
var optionhtml=“”;
对于(变量i=0;i

}))

好吧,你每次打开它都会调用ajax。。为什么不在初始化select之前填充选项呢?对不起,我没有解释清楚,我知道,但是当我打开select2时,它不会只进行一次调用,它会继续发送post请求,之后我甚至无法关闭它。您的ajax调用在一个打开的事件中,并且在您拥有的所有
$(“#select”)。select2('open');
这是一个open命令,它会触发ajax请求,然后获取数据,然后调用您最后拥有的open请求,然后触发ajax请求……等等……老实说,他们的文档非常棒。Pogrindis,我应该在用户每次打开select2时重新初始化它吗?