我需要在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()))应该返回假。 我还设置了numberOfMonths:1。
答案 0 :(得分: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, ''];
}
});
希望有帮助=)