2012-03-19 125 views
0

非常感謝您提前閱讀。Struts:在日曆中突出顯示日期範圍(JQuery/Javascript)

我正在用Struts編寫一個Web應用程序。

我在用戶的視圖上使用JQuery datepicker 1.7作爲側邊欄上的日曆。 (這是我能找到的最好的選擇)

我想在日曆中突出的一組天數由最初的日期(的startDate)開始,直到多次提醒我有一個數組結束(結束日期)。這樣,用戶將能夠在應用程序的日曆上看到他已經離開的所有可用日子,以便爲他的每個提醒採取行動。

我已經有我可以從視圖中訪問的提醒數組。感謝來自這裏的偉大人物的指導,我能夠正確實施它。

這是我的日期選擇器的javascript功能:

$(function(){ 

      $('#datepicker').datepicker({ 
       flat: true, 
       numberOfMonths: [1,1], 
       dateFormat: 'dd/mm/yy', 
       beforeShowDay: highlightDays 
      }); 

還有另外一個功能,即highlightDays這是導致我的麻煩之一:

它的參數是數組「提醒」例如提醒[i] .start是startDate,提醒[i] .end是提醒我的結束日期,其中i =數組中的提醒數量。

function highlightDays(reminders) { 
      for (var i = 0; i < reminders.length; i++) { 

       /** Below: 
       *If startDate is smaller than endDate, 
       *then highlight the days inbetween. 
       */ 

       if (new Date(reminders[i].start).toString() <= 
        new Date(reminders[i].end).toString()){    
        return [true, 'ui-state-highlight']; 
       } 
      } //Otherwise do not highlight 
      return [true, '']; 
     } 

的問題是日曆甚至不會顯示出來,當我打開應用程序和登錄。和Apache日誌或輸出不顯示任何錯誤。我想知道,你認爲我可能錯在哪裏?我會繼續調查,但我真的很感激你的意見! P.D:我可以訪問提醒數組元素(endDate,startDate)並在屏幕上打印這些日期,這意味着提醒數組不是空的。

再次感謝您花時間閱讀。

回答

1

http://jqueryui.com/demos/datepicker/#event-beforeShowDay

該函數採用日期作爲參數,並必須返回[0]等於真/假一個數組,指示該日期是否是可選擇的,[1]等於一個CSS類名稱或默認演示文稿的'',[2]此日期的可選彈出式工具提示。在日期選擇器顯示之前每天都會調用它。

您的回調函數不接受單個日期作爲參數,它採用日期範圍數組。

你可能想弄清楚如何調用remdinder值循環中的highlightdays函數。

+0

這是一個好主意,我會盡力實現它。 – AndresR 2012-03-19 04:01:30

相關問題