jQuery UI Datepicker - 刷新可用日期

问题描述:

我为我的日历使用jQuery UI datepicker。我已经使用beforeShowDay函数来阻止不可用的日子。这些数据来自AJAX调用,如果成功,我将填充日历。jQuery UI Datepicker - 刷新可用日期

这很好,然而我然后想每次日期变得不可用时更新日期选择器,但我无法让datepicker刷新。我希望能够调用一个函数,例如getdates(0);和日期选择器得到更新。

见功能如下代码:

function getdates(duration) { 
    $.getJSON(pluginUrl+"ajax/getdates.php?duration="+duration, function(data) { 

     if(data['success'] == 1){ 

      console.log("here"); 
      var nonWorking = data['non_working_days']; 
      var nonWorkingDates = data['non_working_dates']; 
      var fullyBookedDates = data['fully_booked_dates']; 

      jQuery("#datepicker").datepicker({ 
       minDate: 0, 
       maxDate: "+2m", 
       beforeShowDay: function(date){ 
        var string = jQuery.datepicker.formatDate('yy-mm-dd', date); 
        var day = date.getDay(); 

        var status = true; 

        if(nonWorking.indexOf(day) >= 0){ 
         var status = false; 
        } 
        if(nonWorkingDates.indexOf(string) >= 0){ 
         var status = false; 
        } 
        if(fullyBookedDates.indexOf(string) >= 0){ 
         var status = false; 
        } 

        console.log('in here'); 

        return [ status ]; 
       }  
      }); 

     } 

    }); 
} 

UI的例子:

Datepicker UI

感谢所有帮助

+0

做到这一点的jsfiddle帮助? http://jsfiddle.net/28NWZ/10/ – Dave 2014-12-06 20:16:37

+0

var dateField = $('#datepicker'); dateField.datepicker( '刷新');应该在datepicker中刷新日期。 – Dave 2014-12-06 20:18:25

+0

@不停地显示日历,而不仅仅是当输入焦点时。将UI的屏幕截图添加到原始帖子。 – 2014-12-06 20:24:46

如果您在处理新数据之前重置日期选择器?

jQuery("#datepicker").datepicker("option" , { 
    minDate: null, 
    maxDate: null} 
); 

或者只是破坏它完全和重新开始:

jQuery("#datepicker").datepicker("destroy"); 
+0

(“#日期选择器“)日期选择器(”破坏“); 谢谢,这帮了我! +1 – lbartolic 2015-07-04 10:19:58