以编程方式重置 select2 版本 4.0.1 的内容
Reset programmatically the content of select2 version 4.0.1
我正在使用两个 select2 一个用于省份,另一个用于城市。我的目标是通过从后端作为 json 返回的城市填充 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"}]
您可以删除所有选项,例如(如果您使用)
$("#city").find('option').remove();
Select2 自动更新其选项列表
我正在使用两个 select2 一个用于省份,另一个用于城市。我的目标是通过从后端作为 json 返回的城市填充 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"}]
您可以删除所有选项,例如(如果您使用)
$("#city").find('option').remove();
Select2 自动更新其选项列表