最近的后臺項目前端使用了jquery ui 日歷控件自然就使用了jquery ui 的 datepicker
后臺數據比較好大,一般是千萬級的和百萬級的關聯,查詢會很慢,所以后加想多加些過濾條件,其中時間要設置為必選,
產品要叫日歷控件做成只能做3天之內的查詢,且日歷控件要做成這樣的要求,如果前一個日歷控制選擇了2013年9月1號
后面的日歷控件只能選擇2013年9月1號,2013年9月2號,2013年9月3號,其他的全部要不能選,本來想叫他給提示的,領導非要這么干
真是領導一句話,碼工辛苦好幾年啊。。。好吧還好jquery ui 的日歷控件提供了這個功能,很強大
首先去官網上(http://jqueryui.com/download/#!version=1.9.2)下載jquery ui 包 我用的是1.92版本
下載好了之后
引入:
<link href="jquery-ui/1.9.2/css/smoothness/jquery-ui-1.9.2.custom.min.css" rel="stylesheet" type="text/css" /><script type="text/javascript" src="jquery-ui/1.9.2/js/jquery-ui-1.9.2.custom.js"></script><script type="text/javascript" src="jquery-ui/1.9.2/datepicker-init.js"></script><script type="text/javascript"> $(function(){ var dates = $("#startDate,#endDate"); var option; var targetDate; var optionEnd; var targetDateEnd; dates.datepicker({ showButtonPanel:false, onSelect: function(selectedDate){ if(this.id == "startDate"){ // 如果是選擇了開始時間(startDate)設置結束時間(endDate)的最小時間和最大時間 option = "minDate"; //最小時間 var selectedTime = getTimeByDateStr(selectedDate); var minTime = selectedTime; //最小時間 為開第一個日歷控制選擇的時間 targetDate = new Date(minTime); //設置結束時間的最大時間 optionEnd = "maxDate"; //因為只能做三天內的查詢 所以是間隔2天 當前時間加上2*24*60*60*1000 targetDateEnd = new Date(minTime+2*24*60*60*1000); }else{ // 如果是選擇了結束時間(endDate)設置開始時間(startDate)的最小時間和最大時間 option = "maxDate"; //最大時間 var selectedTime = getTimeByDateStr(selectedDate); var maxTime = selectedTime; targetDate = new Date(maxTime); //設置最小時間 optionEnd = "minDate"; targetDateEnd = new Date(maxTime-2*24*60*60*1000); } dates.not(this).datepicker("option", option, targetDate); dates.not(this).datepicker("option", optionEnd, targetDateEnd); } });// 檢查起始時間不能超過3天function checkTimeInOneMonth(startDate, endDate){ var startTime = getTimeByDateStr(startDate); var endTime = getTimeByDateStr(endDate); if((endTime - startTime) > 2*24*60*60*1000){ return false; } return true;}//根據日期字符串取得其時間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();}</script> <input type="text" value="" name="startDate" readonly="true" id="startDate" title="日期范圍不能大于3天"/><input type="text" value="" name="endDate" readonly="true" id="endDate" title="日期范圍不能大于3天"/>
以上這篇Jquery ui datepicker設置日期范圍,如只能隔3天【實現代碼】就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。
新聞熱點
疑難解答