如果当前日期接近月末,如何将日历设置为下个月自动显示?
解决日历中违约的问题。
目前我有:
$(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'
});
答案 0 :(得分:3)
使用beforeShow
事件设置属性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日再次打开。
答案 1 :(得分:1)
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
});