2016-01-23 60 views
4

,我怎么能代替旧数据时状态初始选择后改变。jQuery的选择2刷新数据

我的加载代码:

$('.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"); 
     }); 
    }); 
+0

嗨,你能提供更多的信息?这三个选择2的你要更新吗?何时加载? –

+0

升乐SY是工作日期选择改变?我相信你需要添加变化事件选择2 - 诊所和选择2 - 医生和包括相同的Ajax调用,如果如预期其日期选择变化工作,以更新选择2插槽。 – pratikpawar

+0

@FedericoBaron当我改变日期,我想改变我们ajax加载插槽,第一次datetimepicker默认是今天,我收回数据,但第二次selectbox不能替代旧数据尽管阿贾克斯加载它的工作。 (我的英文不好:))) –

回答

9

尝试清空选择2选项之前更新数据,这是因为默认情况下它将数据追加到现有的选项。

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