以编程方式重置select2版本4.0.1的内容

时间:2015-12-11 23:56:04

标签: jquery jquery-select2-4

我使用两个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"}]

1 个答案:

答案 0 :(得分:1)

您可以删除所有选项,例如(如果您正在使用)

$("#city").find('option').remove();

Select2会自动更新其选项列表