Select2 Ajax调用在编辑时不起作用

时间:2017-11-09 09:54:24

标签: javascript jquery ajax jquery-select2

我有一个包含两个Select2的页面,一个用于选择国家/地区,另一个用于选择属于第一个选择的国家/地区的城市。 当我选择一个国家/地区时,我输入另一个选择城市的第一个字符,并且Ajax调用将返回属于该国家/地区的所有城市,这些城市的名称以键入的字符开头。这在我第一次打开页面时有效,但是当我尝试打开页面来修改数据时,城市选择中的Ajax调用无法启动。 这是我的两个选择的HTML:

<div class="input-group selectNazioniCitta">
  <select class="form-control select2" name="countryNotValid"></select>
  <span class="input-group-addon"> - </span>
  <select class="form-control select2" name="citiesNotValid"  multiple="multiple"></select>"
</div>

这是js函数,我初始化Cities选择并调用返回城市列表的ajax函数:

function updSelCitta(elem, country, city) {
var o = "url", sel = $(elem).find('select[name*="citiesNotValid"]');
    cities = city.split(';');

for (var i = 0; i < cities.length; i++) {
    if (cities[i] == "") {
        initialData.push({
            id: "-1",
            text: "Tutte"
        });
        selectedData.push("-1");
    } else {
        initialData.push({
            id: cities[i],
            text: cities[i]
        });
        options += "<option value=\"" + cities[i] + "\" selected>" + cities[i] + "</option>";
        selectedData.push(cities[i]);
    }
};
$(sel).val([]);
$(sel).append(options).trigger('change');

$(sel).select2({
    language: "it",
    placeholder: {
        id: '-1', 
        text: 'Tutte'
    },
    width: '100%',
    multiple: true,
    allowClear: true,
    ajax: {
        delay: 500,
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: o,
        dataType: "json",
        cache: 1,
        data: function (params) {
            var query = JSON.stringify({
                country_code: country,
                search: params.term
            })

            return query;
        },
        processResults: function (t) {
            return {
                results: $.map(JSON.parse(t.d), function (obj) {
                    if (obj.city_name == "-") {
                        return { id: "-1", text: "Tutte" };
                    }
                    return { id: obj.city_name, text: obj.city_name };

                })
            };
        },
        error: function (t, o, i) {
            var n = "Error. Check parameters";

            })) : console.log(n)
        }
    },
    minimumInputLength: 2,

});

}

任何人都可以帮我理解为什么Ajax调用无法在编辑中启动?感谢

0 个答案:

没有答案