jquery datepicker-強大的日期控件


     在web開發中,總會遇到需要用戶輸入日期的情況。一般都是提供一個text類型的input供用戶輸入日期。然而,這種方式,開發人員必須對用戶輸入的日期進行驗證,判斷其合法性。除此之外,讓用戶輸入日期也是一件不爽的事,如果用戶可以直接選擇日期,這兩個問題都解決了。

         我們也可以自己用javascript寫一個日期選擇控件,然而,想要寫的很好、很漂亮卻需要花不少時間和精力。jQuery有一個UI插件: datepicker ,可以幫我們實現該功能,而且界面很漂亮。下面就學學如何使用它吧。
         datepicker  插件是jQuery UI的一個插件,它提供一個日期彈出窗口(或直接顯示在頁面),供用戶選擇日期。
 
         前提條件
  • 導入jquery-1.7.2.js  ,也可以是其它版本。我做的demo是這個
  •   導入jquery-ui.js,也可以直接指向http://code.jquery.com/ui/1.10.2/jquery-ui.js 這個地址。前提是要有網絡。
  •   添加對中文的支持-jquery.ui.datepicker-zh-CN.js,如果沒有這個文件,顯示英文版。
  •   導入jquery-ui.css,樣式表也可以自定義。
        最簡單的用法
 
        如果僅僅只需要輸入日期,那么一句話就搞定了。如:
1
$( "#date" ).datepicker();

顯示的效果:

date1
        簡單吧,只需這一句就能彈出日期選擇器。代碼中的date為頁面中input的id。如果我們想做的更加人性化,顯然這一句就不夠了。比如這個日期選擇器只能按月翻,不能直接選擇年份和月份。還有很多方面就不一一列舉了。下面對datepicker的常用屬性做個說明。
 
    常用屬性
    
    changeYear : true                  //允許選擇年份,默認為false
    changeMonth : true             //允許選擇月份,默認為false
    numberOfMonths : 1           //顯示的日期面板個數,默認為1
    showButtonPanel: true       //是否顯示按鈕面板(兩個按鈕:回到今天、關閉),默認為false。
    showOn:’button’                 //在輸入框旁邊顯示按鈕觸發,默認為:focus,還可以設置為both。
    showClearButton:true        //是否顯示清除按鈕,有的版本可能沒有提供清除按鈕。
 
    為了讓datepicker更加生動,我在demo中加了一些屬性。代碼為:
1
2
3
4
5
6
$( "#date" ).datepicker({
changeYear : true ,
changeMonth : true ,
numberOfMonths : 1,
showButtonPanel: true
});

顯示的效果:

date2
    是不是相比以前的datepicker要好看一點呢,既能選擇年份,還能選擇月份,多方便呀。有的時候可能會遇到這樣的問題。導入國際化語言包后,同時啟用changeYear和changeMonth,會發現兩個select都在都一列顯示了。原因是juqery-ui.css造成的,原來這個文件中有這么一段:
1
2
.ui-datepicker select.ui-datepicker-month,
.ui-datepicker select.ui-datepicker-year { width : 49% ;}
    把這個width的比例改成45%就能正常顯示了。
    當然官網上還有更多屬性供大家選擇。地址為: http://jqueryui.com/demos/datepicker/ ,根據自己需要,自行選擇。
 
    常用方法
 
        最常用的可能是onSelect方法了,這種情況是很常見的,比如頁面有兩個日期,開始時間和結束時間。很明顯的道理,開始時間不能大於結束時間。onSelect方法可以為我們省去判斷。代碼如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$( "#date1" ).datepicker({
changeYear : true ,
changeMonth : true ,
numberOfMonths : 1,
showButtonPanel: true ,
onSelect : function (selectedDate) {
$( "#date2" ).datepicker( "option" , "minDate" , selectedDate);  }
});
 
$( "#date2" ).datepicker({
changeYear : true ,
changeMonth : true ,
numberOfMonths : 1,
showButtonPanel: true ,
onSelect : function (selectedDate) {
$( "#date1" ).datepicker( "option" , "maxDate" , selectedDate);  }
});

顯示效果:

date3
           如果開始時間選擇了 2012-05-09,結束時間就不能選擇之前的日期了。我做的demo都是比較簡單的,更多功能可以去jquery UI的官網上看看。
           通過上面的例子,可以看出datepicker是一款不錯的日期選擇器,使用方便,容易上手,官網還提供了很多美觀的皮膚。你值得擁有!
    

原創文章,轉載請注明: 轉載自java開發者

本文鏈接地址: jquery datepicker-強大的日期控件


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM