歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> jQuery插件的應用之 --- 日歷

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

日期:2017/3/1 10:25:40   编辑:Linux編程

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

效果為:

Copyright © Linux教程網 All Rights Reserved