我有一个包含两个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调用无法在编辑中启动?感谢