2012-11-08 65 views
1

我需要禁用的某一天,jQuery的日期選擇器日曆,所以在功能beforeShowDay我寫這篇文章:日期選擇器beforeShowDay回報3個月

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它默認顯示當前月份的日曆,所以如果(parseInt(calMonth)!= parseInt(date.getMonth()))應該返回。假 我還設置NUMBEROFMONTHS:1.

+0

你啓用'showOtherMonths'選項?這將顯示從其他幾個月的幾天。另外,你的函數改變了'calMonth',所以它並不總是當前的月份。 – Barmar

+0

我將showOtherMonths設置爲false,但仍然收到3條警報。是的,我更改calMonth,因爲我只需要在月份更改時進行一次ajax調用,所以如果我沒有將calMonth設置爲日曆顯示的當前月份,它將執行ajax調用。 – pindol

+0

現在我看到有一個選項叫onChangeMonthYear,也許這個是在這種情況下使用的正確選項。不管怎麼說,還是要謝謝你 ;) – pindol

回答

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, '']; 
    } 
}); 

希望它可以幫助=)

相關問題