1. 程式人生 > >jquery ui datepicker起始日期與結束日期的校驗

jquery ui datepicker起始日期與結束日期的校驗

1.引言

之前做的一個專案中用到jquery datepicker,看了一些網上的例子,但是不夠完整。


http://blog.csdn.net/redarmy_chen/article/details/7400723


這是類似的例子,但是不夠完整,dateText型別為Date,如何構造Date查閱的w3c的javascript API,設定開始日期與結束日期只能一步步來

2.引入jquery-us.css,jquery-ui.js

<link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/redmond/jquery-ui.css" />
<script type="text/javascript" src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>

3.定義開始日期與結束日期

<input type="text" readonly="readonly" placeholder="0000-00-00"【1】 name="startDate" id="startDate" class="in-put datepicker" value="" />
<input type="text" readonly="readonly" placeholder="0000-00-00" name="endDate" id="endDate" class="in-put datepicker" value="" />


4.設定datepicker

$.datepicker.regional['zh-CN'] = { 
        clearText: '清除', 【2】
        clearStatus: '清除已選日期', 【3】
        closeText: '關閉', 
        closeStatus: '不改變當前選擇', 
        prevText: '<上月', 
        prevStatus: '顯示上月', 
        prevBigText: '<<', 
        prevBigStatus: '顯示上一年', 
        nextText: '下月>', 
        nextStatus: '顯示下月', 
        nextBigText: '>>', 
        nextBigStatus: '顯示下一年', 
        currentText: '今天', 
        currentStatus: '顯示本月', 
        monthNames: ['1月','2月','3月','4月','5月','6月', '7月','8月','9月','10月','11月','12月'], 
        monthNamesShort: ['1月','2月','3月','4月','5月','6月', '7月','8月','9月','10月','11月','12月'], 
        monthStatus: '選擇月份', 
        yearStatus: '選擇年份', 
        weekHeader: '周', 
        weekStatus: '年內周次', 
        dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'], 
        dayNamesShort: ['週日','週一','週二','週三','週四','週五','週六'], 
        dayNamesMin: ['日','一','二','三','四','五','六'], 
        dayStatus: '設定 DD 為一週起始', 
        dateStatus: '選擇 m月 d日, DD', 
        dateFormat: 'yy-mm-dd', 
        firstDay: 1, 
        showButtonPanel: true,
        initStatus: '請選擇日期', 
        isRTL: false};  
        $.datepicker.setDefaults($.datepicker.regional['zh-CN']);

5.設定startDate的datepicker,其中包括onselect事件

$("#startDate").datepicker({  
	        onSelect:function(startText,endText){
	        	endText=$('#endDate').val();
	        	if(endText!=''){
	        		startText=$('#startDate').val();
	        		if(startText!=''){
		        		var start=new Date();【4】
	        			var start_month=parseInt(startText.substring(5,7))-1;【5】
	        			start.setFullYear(startText.substring(0,4));【6】
	        			start.setMonth(start_month);
	        			start.setDate(startText.substring(8,10));
	        			
	        			var end=new Date();
	    				var end_month=parseInt(endText.substring(5,7))-1;
	    				end.setFullYear(endText.substring(0,4));
	    				end.setMonth(end_month);
	    				end.setDate(endText.substring(8,10));
	    				
	 	       			$('#endDate').datepicker('option','minDate',start);【7】
	        		}
	        	}
	        }  
	    }); 

6.設定endDate的datepicker,類似第4點

$("#endDate").datepicker({
            onSelect:function(startText,endText){
                startText=$('#startDate').val();    
                if(startText!=''){
                    endText=$('#endDate').val();
                    if(endText!=''){
                        var end=new Date();
                        var end_month=parseInt(endText.substring(5,7))-1;
                        end.setFullYear(endText.substring(0,4));
                        end.setMonth(end_month);
                        end.setDate(endText.substring(8,10));
                        
                        var start=new Date();
                        var start_month=parseInt(startText.substring(5,7))-1;
                        start.setFullYear(startText.substring(0,4));
                        start.setMonth(start_month);
                        start.setDate(startText.substring(8,10));
                        
                        $('#startDate').datepicker('option','maxDate',end);【8】
                    }
                }
            } 
        });

7.PS(附註)

【1】placeholder為html5的新特性,作用是在輸入框中顯示提示資訊
【2】清除時間的顯示文字,貌似不起作用,本來想設定清除當前輸入的時間,datepicker的api貌似沒有這個設定
【3】清除的狀態,同【2】,也不起作用
【4】javascript的Date類似,沒有構造方法,所以設定時間只能通過對應的setter方法
【5】這裡要注意一下月份是從0開始的,即0~11
【6】推薦用setFullYear(year),而不是setYear(year)
【7】在開始日期中選擇了日期後,設定結束日期的最小日期為當前選擇的開始日期,效果為當你設定了開始日期後,選擇結束日期時小於開始日期的均不可點選
【8】同樣的,在選擇了結束日期後,設定開始日期的最大日期為當前選擇的結束日期,效果為當你設定了結束日期後,選擇的開始日期大於結束日期的均不可點選

8.相關連結

相關推薦

jquery ui datepicker起始日期結束日期

1.引言 之前做的一個專案中用到jquery datepicker,看了一些網上的例子,但是不夠完整。 http://blog.csdn.net/redarmy_chen/article/details/7400723這是類似的例子,但是不夠完整,dateText型別為D

JQuery 判斷起始日期結束日期大小

//判斷起始日期與結束日期大小         function ckdate() {             var endtime = $('#txtStorageTimeEnd').val();             var starttime = $('#txtS

php 獲取開始日期結束日期之間所有日期

pan UNC col while str int 得到 [] star 話不多說,源碼奉上! function getDateRange($startdate, $enddate) { $stime = strtotime($startdate); $e

09 Jquery UI Datepicker 日期拾取插件

日期 ges tps 插件 分享圖片 jquery ima com itl 09 Jquery UI Datepicker 日期拾取插件

十、jquery-ui datepicker實現選擇一週的日期

html頁面: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <link rel="stylesheet" href="

jquery.ui.datepicker.js 設定預設日期

  defaultDate: '-1M',        onClose: function(dateText, inst) {             var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();     

jquery中使用datepicker限制開始日期小於結束日期的操作

  jquery自身提供了日曆操作的功能,但之前一直在用My97DatePicker日曆的操作,每次使用都要匯入資料夾和提供的庫,看著令人厭煩,這兩天琢磨了一下   jq的日曆控制元件的操   作,比起之前所用,程式碼是多寫了點,但畢竟是jq本身的,不會出現一些意料之外的問

日曆,輸入起始日期截止日期,輸出之間的日期

public List<String> addJob(String startDate, String endDate) throws ParseException {         DateFormat dateFormat = new Sim

PHP獲取日期對應星期、一週日期、星期開始結束日期的方法

本文例項講述了PHP獲取日期對應星期、一週日期、星期開始與結束日期的方法。分享給大家供大家參考,具體如下: /* * 獲取日期對應的星期 * 引數$date為輸入的日期資料,格式如:2018-6-22 */ function get_week($date) { //強制轉換日期格式 $d

SQL 輸出某一天所在的年月對應的所有星期的開始結束日期(每個月僅算4周,第四周可能會有10天)

背景:有時侯導報表需要動態計算每個月對應每週的第一天與最後一天。最後一週的時間要求不需要僅精確到第7天,可以算10天。 USE [***] GO /****** Object: StoredProcedure [dbo].[sp_CalcStartDateEndDate

使用jquery實現開始日期小於結束日期

首先需要引入jquery.js: <script type="text/javascript" src="${ctx}/common/js/lib/jquery.js"></script> <script type="text/javascri

iOS比較當前日期指定日期大小

nsstring -- ascend 如果 format 時間比較 time getc ring #pragma mark -得到當前時間 - (NSDate *)getCurrentTime{ NSDateFormatter *f

js獲取某周、某月、下月、某季度的開始日期結束日期及判斷日期第幾周

weekend return n) nth 結束時間 value rst 獲得 set //格式化日期:yyyy-MM-dd   function formatDate(date) {      var myyear = date.getFullYear();     v

JS獲取本週、本季度、本月、上月、本年的開始日期結束日期

/** * 獲取本週、本季度、本月、上月的開始日期、結束日期 */ var now = new Date(); //當前日期  var nowDayOfWeek = now.getDay(); //今天本週的第幾天  var nowDay = now.getDate(); //當

js獲取前一月的日期 格式化日期

var now = new Date(); var year = now.getFullYear(); var month = now.getMonth() + 1; var da

獲取本週、上週、本月、上月 的開始日期結束日期

方法返回的是一個物件:  {startDate: 年-月-日,  endDate: 年-月-日}使用方法: 獲取上月 :getAppointedDate(2, 1)        獲取上週 getAppointedDate(1,

laydate時間控制元件 (開始日期結束日期

兩個input框,限制開始時間和結束時間 <input type="text" id='starttime' name='starttime' class="form-control input-date" /> <input type="t

PHP 獲取某年第幾周的開始日期結束日期的例項

/** * 獲取某年第幾周的開始日期和結束日期 * @param int $year * @param int $week 第幾周; */ public function weekday($year,$week=1){ $year_start = mktime(0,0

jquery-ui datepicker外掛在頁面第二次點選時無效的問題

頁面結構是這樣的: 一個大的main父頁面中嵌有子頁面,點選選單切換時,main頁面不變,子頁面切換。 a、b兩個子頁面中都有datepicker控制元件。 問題現象: 頁面初始化後,在第一個子頁面中初始化datepicker,正常。點選選單切換子頁面,其後的所有datep

jQuery UI Datepicker 選擇時分秒

將選擇的日期同步到另一個域中,配合altFormat可以顯示不同格式的日期字串。 初始:$('.selector').datepicker({ altField: '#actualDate' }); 獲取:var altField = $('.selector').datepicker('option