星期二, 3月 15, 2011

jQuery 應用篇二 - 日期區間

針對日期這個東西,基本上很多地方都會用到,另外一個常見的處理方式,大概就是日期區間的處理了
一般簡單的查詢畫面,如果需要一個日期的查詢條件輸入,如果做的好一點的,會允許你輸入一段時間的範圍
查詢的時候,就可以查詢出比較多的資料



如果用上次 jQuery 應用篇一 講到的方式,雖然可以方便的設定好所有的日期輸入
但是總覺得會有點怪怪的,在防呆措施中,你可能還得要做一些檢查,像是一些簡單的驗證
如開始時間不可以大於結束時間、相反地結束時間不可以小於開始時間
說真的,這些檢查不多,但多起來可能還是要人命~~~

當然,jQuery UI 其實在 datepicker 的元件上面,其實還有提供不少設定,這次我們會用到的就是 minDate, maxDate 這兩個設定
這兩個設定,就是用來設定輸入的最小日期以及最大日期,搭配著用,就是你可以輸入開始日期之後,讓後面結束日期的 datepicker 直接就『不能輸入比開始日期還小的日期』

假設我開始日期輸入 2011/3/8,那  datepicker 就像以下的樣子:


但是,當然我這個偷懶的人,絕對不會想要一個一個日期物件去設定
根據 html 的一個小小的偷吃步:
所有的 HTML 元件,其實是可以有自定屬性的
當然,我們還是要有些規則,以方便我們來撰寫這些共用的程式:
  1. 如果有標記 minDate 屬性,就表示這個日期物件是『開始日期』,必須要限制不可以小於結束日期
  2. 如果有標記 maxDate 屬性,就表示這個日期物件是『結束日期』,必須要限制不可以大於開始日期
搭配 datepicker 的一個 Event:beforeShow,我們就可以寫出一段程式,用來設定這兩組日期的 datepicker



各位可以自己在上面的 Result 中玩玩
我就不解釋程式碼為什麼要這樣寫了

3 則留言:

  1. 這裡有介紹

    主要就是 Online JavaScript Editor
    而且還支援很多熱門的 js framework
    用來測試很好用,還支援版本勒~

    要貼在 blog 上面也很方便,不需要自己去搞什麼格式的問題
    還可以 Run, 超棒!

    回覆刪除
  2. 我想有個問題

    就是這樣的設計會通不過 HTML 驗證

    回覆刪除

Powered By Blogger