2016-01-23 57 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 
});