歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

jQuery插件的應用之 --- 日歷

jQuery插件的應用之 --- 日歷 

一   介紹 

(1)優點:在頁面開發中,經常會遇到需要用戶輸入日期的操作,通常的做法是提供一個文本框,讓用戶輸入,然後,再編寫代碼驗證輸入的數據,檢測其是否是日期類型,這樣比較麻煩,同時,用戶輸入日期的操作也不是很方便,影響用戶體驗。如果使用jQueryUI中的datepicker插件,這些問題就可以迎刃而解 

(2)導入的js和css文件 

  1.     jquery-1.7.1.min.js"  
  2.     jquery-ui-1.8.18.custom.min.js"  
  3. jquery.ui.core.js"  
  4. jquery.ui.datepicker.js"  
  5.     jquery.ui.widget.js"  
  6.     jquery.ui.datepicker-zh-CN.js"   把界面的改為中文的所需要導入的包  
  7. jquery-ui-1.8.18.custom.css"  

(3)功能實現 

在頁面中,當單機文本框時,通過datepicker插件彈出一個日期選擇窗口,該窗口可以使用下拉列表框的方式選擇年份與月份,並顯示與日期相對應的星期。 

二   代碼詳解 

1.首先來創建一個jsp頁面 

  1.     <body>  
  2.         <div>  
  3.             <form action="">  
  4.                 <input type="text"  id="datepicker"/>  
  5.             </form>  
  6.         </div>  
  7.     </body>  

2. 然後用js代碼來注冊當點擊id="datepicker"時觸發的事件 

  1. <script type="text/javascript">  
  2.         $(document).ready(function(){  
  3.             $("#datepicker").datepicker();  
  4.         });  
  5.     </script>  
  6. 然後我們就可以向datepicker()中加入參數來修飾日期  
  7. (1)在日期的標題欄中顯示下拉列表框  
  8. //在日期的標題欄中是否出現下拉選擇框,選擇日期中的月份,true代碼有選擇框   
  9.  changeMonth : true,  
  10. changeYear : true//在日期的標題欄中出現下拉列表框顯示年   
  11. (2)關閉彈出的日期框  
  12. //在日期面板的下方出現2個按鈕,一個是tody,一個是關閉,默認值是不顯示的   
  13. showButtonPanel : true,  
  14. //關閉的效果文字必須結合showButtonPanel:true來使用   
  15. closeText : "關閉"  
  16.   
  17. (3)設定在文本框中的格式  
  18. dateFormat : "yy-mm-dd"  
  19. (4)設置日期的缺省值,在當前日期中 加或減一天  
  20. defaultDate : "-3"  
  21. (5)設置日期出現和消失的動畫效果,比如有slide,toggle  
  22. showAnim : "slide"  
  23. (6)現在當年中的第一周,在左邊顯示  
  24. showWeek : true  
  25. (7)默認fisrtDay是當年的第一天  
  26. firstDay : 1  
  27. (8)表示下拉框中的年份的范圍  
  28. yearRange : "2011:2012"  
  29. (9)如果是兩個選框,填寫的是從哪一天到哪一天的話,要獲取點擊的值並判斷值  
  30. onSelect : function(selectedDate) {  
  31.             //獲取當前 對象this.id=dp minDate  //開始日期的最小值    
  32.             //獲取 option的值是minDat或者是maxDate  根據dom對象的id   
  33.             var option = this.id == "dep" ? "minDate" : "maxDate",  
  34.                 //獲取當前日期的實例對象 ,每遍歷一次就 獲取一次   
  35.                 instance = $( this ).data( "datepicker" ),  
  36.                 //獲取日期   instance.settings 獲取日期的值    
  37.                 date = $.datepicker.parseDate(  
  38.                 instance.settings.dateFormat ||  
  39.                 $.datepicker._defaults.dateFormat,  
  40.                 selectedDate, instance.settings );  
  41.                 alert(instance.settings);  
  42.                 //設置日期   
  43.                 dates.not( this ).datepicker( "option", option, date );  
  44.             },  
  45. (10)在應用中還可能會用到點擊圖片或按鈕彈出選擇日期的對話框,會用到幾下幾個屬性  
  46. //點擊按鈕時出發的事件    
  47.         showOn:"button",  
  48.         //向按鈕上添加文本    
  49.         buttonText:"選擇日期",  
  50.         //向按鈕上添加圖片    
  51.         buttonImage:" images/calendar.gif",  
  52.         //設置只顯示圖片  ,沒有按鈕    
  53.         buttonImageOnly:true,  
  54. (11)還有就是補全所有的日期,但是是不可選的   
  55. //補全所有的    
  56.     showOtherMonths:true,  
  57.     //在當前月中,其他月的日期不可以選擇  ,,默認為false    
  58.     selectOtherMonths:false  
  59. (12)把顯示的日期換成中文的格式,要導入包jquery.ui.datepicker-zh-CN.js,也可以加入$.datepicker.setDefaults($.datepicker.regional["zh-CN"]);來聲明  
  60.   
  61. 整體的代碼為:  
  62. <script type="text/javascript">  
  63. //當頁面 加載完畢的時候觸發的匿名函數   
  64. $(document).ready(function() {    
  65.       $.datepicker.setDefaults($.datepicker.regional["zh-CN"]);  
  66.     //當點擊的時候觸發事件,點擊的時候直接顯示    
  67.         //判斷開始日期的最大值等於結束日期的最小指    
  68.         var dates = $("#dep,#end").datepicker(  
  69.                 {  
  70.                     changeMonth : true,//在日期的標題欄中是否出現下拉選擇框,選擇日期中的月份,true代碼有選擇框,fals代碼沒有選擇框   
  71.                     changeYear : false,//在日期的標題欄中出現下拉列表框顯示年    
  72.                     showButtonPanel : true//在日期面板的下方出現2個按鈕,一個是tody,一個是關閉,默認值是不顯示的   
  73.                     closeText : "關閉"//關閉的效果文字必須結合showButtonPanel:true來使用   
  74.                     dateFormat : "yy-mm-dd"//設定在文本框中的格式    
  75.                     defaultDate : "-3"//缺省值,在當前日期中 加或減一天    
  76.                     showAnim : "slide"//設置動畫效果    slide  toggle   
  77.                     showWeek : true//顯示當年中的第幾 周,在最左邊    
  78.                     firstDay : 1, //默認fisrtDay是當年的第一天   
  79.                     yearRange : "2011:2012"//表示下拉框中的年份的范圍        
  80.   
  81.                     onSelect : function(selectedDate) {  
  82.                     //獲取當前 對象this.id=dp minDate  //開始日期的最小值    
  83.                     //alert(this);   
  84.                         //獲取 option的值是minDat或者是maxDate  根據dom對象的id   
  85.                         var option = this.id == "dep" ? "minDate" : "maxDate",  
  86.                         //獲取當前日期的實例對象 ,每遍歷一次就 獲取一次   
  87.                         instance = $( this ).data( "datepicker" ),  
  88.                         //獲取日期   instance.settings 獲取日期的值    
  89.                         date = $.datepicker.parseDate(  
  90.                         instance.settings.dateFormat ||  
  91.                         $.datepicker._defaults.dateFormat,  
  92.                         selectedDate, instance.settings );  
  93.                           
  94.                         alert(instance.settings);  
  95.                         //設置日期   
  96.                         dates.not( this ).datepicker( "option", option, date );  
  97.                     },  
  98.                     //提示信息   
  99.                     prevText:"上一月",  
  100.                     nextText:"下一月",  
  101.                     //顯示幾個選擇的日期   
  102.                     numberOfMonths:1,  
  103.                     //點擊按鈕時出發的事件    
  104.                     showOn:"button",  
  105.                     //向按鈕上添加文本    
  106.                     buttonText:"選擇日期",  
  107.                     //向按鈕上添加圖片    
  108.                     buttonImage:" images/calendar.gif",  
  109.                     //設置只顯示圖片  ,沒有按鈕    
  110.                     buttonImageOnly:true,  
  111.                     //補全所有的    
  112.                     showOtherMonths:true,  
  113.                     //在當前月中,其他月的日期不可以選擇  ,,默認為false    
  114.                     selectOtherMonths:false  
  115.                 });  
  116.     });  
  117. </script>  

效果為: 

Copyright © Linux教程網 All Rights Reserved