我使用两个select2一个用于省,另一个用于城市。我的目标是通过后端返回的城市来填充城市select2下拉。
现在第一个电话适用于我,城市select2被正确填充。唯一的问题是在第二次调用(由省更改触发)json返回的内容而不是替换它添加到它的select 2城市的内容,我无法弄清楚如何在添加之前清空以前的内容。
我试过了两个:
$("#city").select2({'data' : null });
和
$("#city").select2('data', null );
这是我的ajax电话:
$(".select2").select2();
$('#id_province').on('change', function() {
if ($(this).val() > 0) {
$.ajax({
type: 'GET',
url: './cities.php',
data: { province: $(this).val() },
dataType: 'json',
success: function (data) {
console.log(data);
$("#city").select2({'data' : null });
$("#city").select2({
data: data
});
}
});
}
});
以下是从服务器返回的json的示例:
[{"id":"62","text":"Brandon"},{"id":"63","text":"Dauphin"},{"id":"64","text":"Flin Flon"},{"id":"65","text":"Portage la Prairie"},{"id":"66","text":"Selkirk"},{"id":"67","text":"Steinbach"},{"id":"68","text":"Thompson"},{"id":"69","text":"Winkler"},{"id":"70","text":"Winnipeg"}]
答案 0 :(得分:1)
您可以删除所有选项,例如(如果您正在使用)
$("#city").find('option').remove();
Select2会自动更新其选项列表