HTML5 input date屬性引起的探索——DatePicker(日期選擇外掛程式)

來源:互聯網
上載者:User

標籤:結束   sub   oca   測試   開始時間   mon   pre   class   擷取   

不得不說H5的input date屬性真的好用,之前我寫的http://www.cnblogs.com/tu-0718/p/6729274.html 這篇部落格裡面也有提到,不過雖然移動端對H5的支援還是很好的,但是PC端瀏覽器對H5的支援就很讓人無奈了。然後最近遇到一個需求:需要一個開始時間和結束時間,預設顯示年月,如:

 

第一反應想到的是H5的input date屬性,因為相容性問題無奈放棄,然後發現了一個挺好用的外掛程式:DatePicker,

註:在使用此外掛程式時需要注意,DatePicker外掛程式需要的不僅僅是js檔案,而是整個檔案夾都需要,如:

  如果你把裡面的js檔案單獨提出來引入的話是沒有效果的,控制台會提示找不到此js檔案,這個檔案的路徑是不能改的,能改的只有檔案夾的名字。

 

  此外掛程式調用WdatePicker() 方法預設顯示年月日如:

  

  如果你只想顯示年月,onclick="WdatePicker({dateFmt:‘yyyy-MM‘})" 即可,如

  

  

  本來到這裡就應該結束了,不過後面需求又加了一個,說是要給開始時間和結束時間設定一個預設時間,經測試,此外掛程式並沒有相應的方法可以辦到。

  然後我就想到了一個方法,用jquery擷取到開始時間和結束時間元素的值,然後調用原生JS new Date()方法,在用toLocaleDateString()轉一次

  代碼如下:

    $("#beginDate").val(new Date().toLocaleDateString());    $("#endDate").val(new Date().toLocaleDateString());   效果如:           Date對象方法詳見: http://www.w3school.com.cn/jsref/jsref_obj_date.asp    本以為這樣應該可以了吧,結果又說不能要日,只要年月,(我的內心是崩潰的), 原生Date方法也沒有這個方法。焦急之餘向大神求助,大神就是給力啊,  給了一個自己寫的方法,只要調用這個方法,然後在用substr()截取就可以了,代碼如下:  
  $("#beginDate").val(GetDateStr().substr(0,7));      $("#endDate").val(GetDateStr().substr(0,7));      function GetDateStr(AddYear,AddMonth,AddDay) { //此參數為新增年月日,可以設定,也可以不設定            AddYear?AddYear:AddYear=0;            AddMonth?AddMonth:AddMonth=0;            AddDay?AddDay:AddDay=0;            var dd = new Date();            dd.setFullYear(dd.getFullYear()+AddYear);            dd.setMonth(dd.getMonth()+AddMonth);            dd.setDate(dd.getDate()+AddDay);            var y = dd.getFullYear();            var m = dd.getMonth()+1;            var d = dd.getDate();            return y+"-"+m;      }

 

  效果如:    

  附: 我就一條龍服務做到底吧,在附上一段代碼,主要用於判斷日期(起始時間不能大於結束時間 / 不能直接選擇結束時間,需要先選擇起始時間) 

$(document).ready(function(){         var createDateBegin = $("#beginDate");         var createDateEnd = $("#endDate");         $(createDateEnd).blur(function(){             if(createDateEnd.val()!="" && createDateBegin.val()!=""&&createDateEnd.val()<createDateBegin.val()){                 alert(‘開始時間不能大於結束時間!‘);                 $(createDateEnd).val("");                 return;             }             if((createDateBegin).val()==""){                 alert(‘請選擇起始時間!‘);                 $(createDateEnd).val("");                 return;             }             if((createDateBegin).val()!=""){                 return;             }         });        $(createDateBegin).blur(function(){             if(createDateEnd.val()!="" && createDateBegin.val()!=""&&createDateEnd.val()<createDateBegin.val()){                 alert(‘開始時間不能大於結束時間!‘);                 $(createDateEnd).val("");                     return;             }             if($(createDateEnd).val()!=""){                return;             }         });        });

 

    

HTML5 input date屬性引起的探索——DatePicker(日期選擇外掛程式)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.