jquery select2刷新数据

时间:2016-01-23 10:23:20

标签: jquery jquery-select2

我使用select2选择并ajax加载数据,如何在初始选择后更改状态时替换旧数据。

我的加载代码:

$('.datetimepicker').on("changeDate", function() {  
        //refresh selectbox ??
        doctor_id = $(".select2-doctors").val();
        clinic_id = $(".select2-clinics").val();
        date = $('.datetimepicker').datepicker('getFormattedDate');
        $.ajax({
            url: '/admin/appointments/time_slots',
            type: 'GET',
            dataType: 'json',
            data: {doctor_id: doctor_id, clinic_id: clinic_id, date: date}
        })
        .done(function(data) {
            console.log("success");
            console.log(data);
            $('.select2-slot').select2({
                data: data.slots
            });
        })
        .always(function() {
            console.log("complete");
        });
    });

4 个答案:

答案 0 :(得分:13)

在更新数据之前尝试清空select2选项,这是因为默认情况下会将数据附加到现有选项。

200

答案 1 :(得分:1)

instance && $('.select2').empty();
var instance = $('.select2').select2({
    data: data
});

答案 2 :(得分:0)

只需调用此fun()函数即可。它将清除内部的所有内容。 一切都记录在here中。 有效的jsfiddle here

<button onclick="fun()">
  Click
</button>

<script>
// create select2 option
$("#example").select2();

// the clearing function
function fun() {
    $("#example").select2().val(null).trigger("change");
}
</script>

答案 3 :(得分:0)

这对我有用!

$("#example").select2().val(null).trigger("change");