If the current date is near the end of the month, how can I set the calendar to auto show the next month?
To solve the issue of the calendar ever defaulting to this.
At the moment I have:
$(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'
});
Use beforeShow
Event to set the attribute 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" );
Demo : http://jsfiddle.net/Z44PQ/1/, select 30 Nov and open again.
Datepicker has a defaultDate option that specifies which day starts out highlighted.
So, if you come up with your logic to determine when it needs to start on the next month, it should be pretty simple.
var defaultDate = new Date();
if(advanceMonth){
defaultDate = new Date(defaultDate.getYear(), defaultDate.getMonth() + 1, 1, 0, 0,0)
}
$(predecessor+"input.datePicker").datepicker({
defaultDate: defaultDate
});