2012-10-31 118 views
1

如果當前日期接近月末,如何將日曆設置爲自動顯示下個月?如果當前月份接近月末,jQuery datepicker將在下個月顯示

解決日曆違約問題。

enter image description here

目前我有:

$(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' 
}); 

回答

2

使用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

日期選擇具有指定哪天開始時強調了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 
}); 
相關問題