1

我需要在 jquery datepicker 日历中禁用某天,所以在 beforeShowDay 函数中我写了这个:

beforeShowDay: function(date){
            if(parseInt(calMonth) != parseInt(date.getMonth())){
                calMonth = date.getMonth();
                alert(calMonth + ' - ' + date.getMonth());
            }
            return {0: true};
        }

其中 calMonth 包含当前月份数。现在,如果我运行它,我会收到 3 个按顺序显示的警报:9-9、10-10 和 11-11。为什么我有 3 条消息,而它不应该显示任何内容(因为当我打开 datepicker 时,它默认显示当前月份的日历,所以 if(parseInt(calMonth) != parseInt(date.getMonth())) 应该返回false. 我还设置了 numberOfMonths: 1。

4

1 回答 1

1

有同样的问题,我是这样解决的:

$("#datepicker").datepicker({ showWeek: true, showOtherMonths : false,
    //I'm using onChangeMonthYear to always keep my datepicker month updated
    onChangeMonthYear: function(year, month, inst){
        $(this).datepicker( "setDate", month + '/1/' + year );
    },
    beforeShowDay: function(date) {
        //Now I can get only the days of the current selected month, and do whatever I want...
        if(date.getMonth()==$(this).datepicker('getDate').getMonth()) 
            console.log(date.getDate()+' - '+date.getMonth()+' - '+$(this).datepicker('getDate').getMonth());

        //keep returning as usual to the datepicker
        return [true, ''];
    } 
});

希望它有帮助=)

于 2014-07-16T13:33:18.427 回答