jquery UI Datepicker時間控件的使用方法(終結(jié)版)
近期項目中用到日期控件,感覺不錯,寫出來分享給大家看看,我限制的開始時間和結(jié)束時間跨度不超過三天,并配置有清空時間,重選時間等功能,分享給大家:
先給大家看兩張效果圖
在例子中我控制的開始時間和結(jié)束時間為三天,也就是開始時間和結(jié)束時間的跨度不能超過三天。
具體是怎么實現(xiàn)的,代碼中會附有很詳細的解釋,請大家繼續(xù)往下看:
第一步,引入控件js,這里有兩個,一個是jquery.js,一個是jquery-ui-datepicker.js,當然還有引入樣式文件:
<script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript" src="js/jquery-ui-datepicker.js"></script> <link rel="stylesheet" type="text/css" href="css/jquery-ui.css" />
第二步:創(chuàng)建一個文本輸入框,text類型的input,我的demo中還寫入了清空時間的設置,也就是一個按鈕響應事件
<td width="35%"> <label>開始時間:</label> <input type="text" name="start" id="start" value="${params.start}" readonly="true" title="日期范圍不能大于3天"/> <input type="button" class="formButton" value="清空" onclick="cleaPrevInput(this);"/> <font color="red">必選*</font> </td> <td width="35%"> <label>結(jié)束時間:</label> <input type="text" name="end" id="end" value="${params.end}" readonly="true" title="日期范圍不能大于3天"/> <input type="button" class="formButton" value="清空" onclick="cleaPrevInput(this);"/> <font color="red">必選*</font> </td>
里面value的值不用管,我這是寫在項目中的代碼,value值這樣寫是為了查詢后刷新頁面的時候時間框中依然可以有選擇的時間值的。
下面的代碼就是調(diào)用日期控件的了,代碼如下:
$(function(){ // 獲取調(diào)用控件的對象 var dates = $("#start,#end"); var option; //設置目標時間,因為例子中的開始時間和結(jié)束時間是有時間限制的 var targetDate; var optionEnd; var targetDateEnd; dates.datepicker({ showButtonPanel:false, //當選擇時間的時候觸發(fā)此事件 onSelect: function(selectedDate){ if(this.id == "start"){ // 如果是選擇了開始時間 option = "minDate"; //getTimeByDateStr 這個方法的代碼下面會貼出來的,就是處理時間的代碼 var selectedTime = getTimeByDateStr(selectedDate); var minTime = selectedTime; targetDate = new Date(minTime); //設置結(jié)束時間 optionEnd = "maxDate"; targetDateEnd = new Date(minTime+2*24*60*60*1000); }else{ // 如果是選擇了結(jié)束時間 option = "maxDate"; var selectedTime = getTimeByDateStr(selectedDate); var maxTime = selectedTime; targetDate = new Date(maxTime); //設置開始時間 optionEnd = "minDate"; targetDateEnd = new Date(maxTime-2*24*60*60*1000); } //設置時間框中時間,比如根據(jù)選擇的開始時間,限制結(jié)束時間的不可選項,dates.not(this)是js選擇器使用, //datepicker("option", option, targetDate),這個就是日期控件封裝的api了 dates.not(this).datepicker("option", option, targetDate); dates.not(this).datepicker("option", optionEnd, targetDateEnd); } }); });
下面先把上面代碼中getTimeByDateStr(XXX) 方法的代碼貼出來,大家看的方便,這個代碼很簡單,相信大家一看便懂:
//根據(jù)日期字符串取得其時間 function getTimeByDateStr(dateStr){ var year = parseInt(dateStr.substring(0,4)); var month = parseInt(dateStr.substring(5,7),10)-1; var day = parseInt(dateStr.substring(8,10),10); return new Date(year, month, day).getTime(); }
代碼到現(xiàn)在就可以實現(xiàn)日期控件的使用,并且開始時間和結(jié)束時間限制在三天以內(nèi),比如你選擇了開始時間為2014-03-27,那么結(jié)束時間只有27,28,29三天可選,其余日期不可點擊,如果你選擇了結(jié)束時間為28,那么,現(xiàn)在開始時間就只能選擇28,27,26了,就這樣。
第三步:大家看清空按鈕,清空按鈕是清空時間選擇框中的值,這個實現(xiàn)起來很簡單了:
//清空日歷控件 function cleaPrevInput(objs){ //清空輸入框中的值,但是僅僅是清空了值而已,時間控件的選值限制還在的 $(objs).prev().val(""); //如果開始時間和結(jié)束時間都清空了,這時應該是你選擇的那個框中是沒有時間限制的,也就是說可以隨便選擇日期 if($('#start').val()=="" && $('#end').val()==""){ var dates = $("#start,#end"); //調(diào)用datepicker封裝的api,使剛剛設置的開始時間和結(jié)束時間為空,這樣就可以選擇任意日期了 dates.datepicker("option", "minDate", null); dates.datepicker("option", "maxDate", null); } }
現(xiàn)在就可以使用了,如果只是使用控件,不需要設置時間限制就非常簡單了,上面代碼可以供多數(shù)日期選擇方面的需求使用了,但是如果有特殊的話,還需自己去查api吧,當時我單單為了清空日期控件中的值,就是這句代碼:dates.datepicker("option", "maxDate", null),就查了半天的api,還是需要大家有足夠的耐心。
以上就是關于jquery UI Datepicker時間控件的全部內(nèi)容介紹,暫時畫上了一個句號,以后再有相關文章,一定第一時間與大家分享。
- JQuery datepicker 使用方法
- datePicker——日期選擇控件(with jquery)
- jQuery ui 利用 datepicker插件實現(xiàn)開始日期(minDate)和結(jié)束日期(maxDate)
- jquery datepicker參數(shù)介紹和示例
- jQueryUI中的datepicker使用方法詳解
- jquery UI Datepicker時間控件的使用方法(加強版)
- JQuery datepicker 用法詳解
- 設置jQueryUI DatePicker默認語言為中文
- JQuery日期插件datepicker的使用方法
- jQuery dateRangePicker插件使用方法詳解
相關文章
jQuery實現(xiàn)的給圖片點贊+1動畫效果(附在線演示及demo源碼下載)
這篇文章主要介紹了jQuery實現(xiàn)的給圖片點贊+1動畫效果,并附帶在線演示及demo源碼下載,涉及jQuery鼠標事件響應及頁面元素屬性動態(tài)操作相關技巧,需要的朋友可以參考下2015-12-12利用jQuery簡單實現(xiàn)產(chǎn)品展示圖片左右滾動功能(示例代碼)
本篇文章主要是對利用jQuery簡單實現(xiàn)產(chǎn)品展示圖片左右滾動功能的示例代碼進行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助2014-01-01IE中jquery.form中ajax提交沒反應解決方法分享
用jquery form插件,進行ajax提交,本來可以用,好好地,突然發(fā)現(xiàn),firefox,opera等可以提交,ie的success函數(shù)運行了2012-09-09jquery 屏蔽一個區(qū)域內(nèi)的所有元素,禁止輸入
有時候,需要屏蔽一個div中所有的input類型,使用jquery很簡單有效的完成。2009-10-10ashx文件獲取$.ajax()方法發(fā)送的數(shù)據(jù)
這篇文章主要介紹了ashx文件獲取$.ajax()方法發(fā)送的數(shù)據(jù)的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-05-05jQuery實現(xiàn)的簡單折疊菜單(折疊面板)效果代碼
這篇文章主要介紹了jQuery實現(xiàn)的簡單折疊菜單(折疊面板)效果代碼,涉及jQuery中slideToggle與toggleClass方法的靈活使用技巧,需要的朋友可以參考下2015-09-09jQuery實現(xiàn)的調(diào)整表格行tr上下順序
表格元素是大家比較常用的元素,有時候表格中的行需要調(diào)整順序,下面通過代碼實例介紹一下如何利用jquery實現(xiàn)此功能2016-01-01