2009-07-07 105 views
6

我在我的應用程序中使用jquery ui datepicker。 我創建了一個內聯日期選擇器。 我遇到問題onChangeMonthYear。我已經簡化了這個例子到最低限度。jquery datepicker onChangeMonthYear

「上一頁」 或 「下一個」 的的onclick,日曆應: -

  1. 轉到上一個/下一個月相應。
  2. 將當月的第一天設置爲當前選定的日期。
  3. 提醒該日期

問題出在#2。

我使用setDate來做到這一點,它以無限遞歸結束。因爲,我在onChangeMonthYear裏調用setDate。並且setDate也在內部觸發ChangeMonthYear。

如何在單擊prev/next時實現這3件事。

回答

7

嘗試設置,你可以在你的事件處理程序,查詢,以防止無限循環的標誌:

var changingDate = false; 
$('.selector').datepicker({ 
    onChangeMonthYear: function(year, month, inst) { 
     if (changingDate) { 
      return; 
     } 
     changingDate = true; 
     // your setDate() call here 
     changingDate = false; 
    } 
}); 
1

無限遞歸意味着你告知不正確的月份。
確保您正在減少1從month

0
onChangeMonthYear: function(year, month, inst){ 
    $(this).datepicker("setDate", new Date(year, month-1, 1)); 
}