最近的後台專案前端使用了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天【實現代碼】就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。