jQuery ui 利用 datepicker外掛程式實現開始日期(minDate)和結束日期(maxDate)

來源:互聯網
上載者:User

標籤:style   http   io   ar   使用   sp   on   div   2014   

 

使用jQuery ui首先需要引入jQuery類庫,jQuery ui js指令碼和jQuery ui css樣式表。程式碼範例如下:

 

複製代碼 代碼如下:
<script src="js/jquery-1.7.1.js"></script>  
<script src="js/jquery-ui-1.8.18.custom.min.js"></script>
<link rel="stylesheet" type="text/css" href="css/smoothness/jquery-ui-1.8.18.custom.css">

 

註:引入js指令碼時,需先引入jQuery類庫,後引入jQuery ui 指令碼

下面為兩種實現步驟:

思路一:

第一步  實現兩個datepicker組件。

  需要定義兩個input標籤,類型為text,並指定id屬性

HTML代碼如下

 

複製代碼 代碼如下:
開始日期:<input type="text" id="start">
結束日期:<input type="text" id="end">

 

在js代碼中得到兩個input元素的jQuery對象,並將其轉化為datepicker組件

Js代碼如下

 

複製代碼 代碼如下:
    $(document).ready(function(){ 
        $("#start").datepicker(); 
        $("#end").datepicker(); 
    }); 

 

實現以上操作後,在頁面中點擊文字框,如果出現datepicker則代表成功。

第二步  設定開始和結束日期

  當選擇開始日期的值後,則結束日期的最小值應該就是開始日期;同理,當選擇結束日期後,開始日期的最大值則應該是結束日期。我們可以利用datepicker中的onSelect屬性來設定當選擇指定日期後觸發的事件,通過該事件來指定對應的datepicker最小日期或最大日期。

Js代碼如下

 

複製代碼 代碼如下:
$("#start").datepicker({
    onSelect:function(dateText,inst){
       $("#end").datepicker("option","minDate",dateText);
    }
});
$("#end").datepicker({
    onSelect:function(dateText,inst){
        $("#start").datepicker("option","maxDate",dateText);
    }
});

 

註:匿名函數中的dateText屬性為當前選擇日期的字串

思路二:

第一步  同時獲得兩個文字框對象,並將其轉換為datepicker(利用jQuery的選取器)

HTML代碼如下

 

複製代碼 代碼如下:
開始日期:<input type="text" id="start">
結束日期:<input type="text" id="end">

 

Js代碼如下

 

複製代碼 代碼如下:
var dates = $("#start,#end");
dates.datepicker();

 

第二步  同樣在選擇日期後,觸發onSelect事件,調用函數傳遞selectedDate參數,

函數體中首先判斷觸發事件的是開始日期還是結束日期,通過該判斷來指定設定minDate或者是maxDate,然後利用not()函數,來反向選擇另一個datepicker對象,並設定其對應的屬性。

Js代碼如下

 

複製代碼 代碼如下:
dates.datepicker({
    onSelect: function(selectedDate){
       var option = this.id == "start" ? "minDate" : "maxDate";
       dates.not(this).datepicker("option", option, selectedDate);
    }
});

 

這樣在設定一方後,另一方就會被限制了。

實現的效果

jQuery ui 利用 datepicker外掛程式實現開始日期(minDate)和結束日期(maxDate)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.