jQuery UI Datepicker - 刷新可用日期

时间:2014-12-06 19:48:04

标签: jquery ajax jquery-ui datepicker jquery-ui-datepicker

我正在使用jQuery UI datepicker作为我的日历。我使用了beforeShowDay函数来阻止不可用的日子。这些数据来自一个AJAX调用,当成功时我会填充日历。

这很好用,但是我想在每次日期不可用时更新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

感谢您的帮助

1 个答案:

答案 0 :(得分:3)

您应该在处理新数据之前重置日期选择器吗?

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

或者只是彻底销毁它并重新开始:

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