如果接近本月末,jQuery datepicker会在下个月展示

如果当前日期接近月末,如何将日历设置为下个月自动显示?

解决日历问题一直违约到此。

在此处输入图像描述

目前我有:

$(predecessor+"input.datePicker").datepicker({ minDate: 0, changeMonth: true, dateFormat: "dd/mm/yy", firstDay: 1, hideIfNoPrevNext: true, showAnim: 'slideDown', showOn: "both", showOtherMonths: true, showStatus: true, maxDate: '-1d' }); 

使用beforeShow Event设置属性numberOfMonths

 $('#calendar').datepicker({ //minDate: 0, changeMonth: true, dateFormat: "dd/mm/yy", firstDay: 1, hideIfNoPrevNext: true, showAnim: 'slideDown', showOn: "both", showOtherMonths: true, showStatus: true, //maxDate: '-1d' beforeShow: function(text, inst){ var next_day = new Date( inst.selectedYear, inst.selectedMonth, inst.selectedDay ); next_day.setDate(next_day.getDate()+1); console.log(inst.selectedMonth); console.log(next_day.getMonth()); if(inst.selectedMonth != next_day.getMonth()) return {numberOfMonths: 2}; else return {numberOfMonths: 1}; } }).datepicker("setDate", "+0d" );​ 

演示: http : //jsfiddle.net/Z44PQ/1/ ,选择11月30日再次打开。

Datepicker有一个defaultDate选项,用于指定突出显示的那一天。

所以,如果你想出你的逻辑来确定它何时需要在下个月开始,它应该非常简单。

 var defaultDate = new Date(); if(advanceMonth){ defaultDate = new Date(defaultDate.getYear(), defaultDate.getMonth() + 1, 1, 0, 0,0) } $(predecessor+"input.datePicker").datepicker({ defaultDate: defaultDate });