淺談Bootstrap的DatePicker日期范圍選擇
用日期插件時(shí),經(jīng)常會(huì)有一種需求。兩個(gè)input框選擇。開(kāi)始時(shí)間小于結(jié)束時(shí)間,結(jié)束時(shí)間大于開(kāi)始時(shí)間,開(kāi)始時(shí)間和結(jié)束時(shí)間都不大于當(dāng)前時(shí)間。
我們當(dāng)然可以用選擇的結(jié)果來(lái)判斷輸入正確與否。但是更好的辦法是讓我們的日期選擇插件做出一些限制。
Bootstrap搭配了很優(yōu)秀的日期選擇插件。DatePicker和DateTimePicker。
兩者功能很類似。使用方法也是差不多的。DatePicker支持更多的事件和設(shè)置。
看api知道日期變化的時(shí)候會(huì)有一個(gè)事件changeDate。當(dāng)選擇的日期變化的時(shí)候,會(huì)調(diào)用我們給這個(gè)事件的回調(diào)。但是遺憾的是當(dāng)我們直接在輸入框中輸入或刪除日期的時(shí)候貌似并不會(huì)觸發(fā)到這個(gè)事件。所以可以把input框添加屬性 readonly。只讀狀態(tài),并且給日期控件一個(gè)清除按鈕。這樣日期的變化正常情況下就只有通過(guò)日期插件來(lái)控制了。
然而當(dāng)使用DateTimePicker插件點(diǎn)擊清除按鈕的時(shí)候,會(huì)報(bào)錯(cuò) Uncaught TypeError: Cannot read property 'getTime' of null,結(jié)果導(dǎo)致changeDate事件也不能正常使用。
所以就改用DatePicker插件。
然后當(dāng)一個(gè)輸入框日期變化(包括清除)的時(shí)候,changeDate事件觸發(fā),在其回調(diào)函數(shù)里修改另一個(gè)輸入框的可選范圍。
另外,DatePicker要使界面顯示中文,也需要加載css。bootstrap-datepicker.zh-CN.min.js。
下面是代碼:
function DatePicker(beginSelector,endSelector){ // 僅選擇日期 $(beginSelector).datepicker( { language: "zh-CN", autoclose: true, startView: 0, format: "yyyy-mm-dd", clearBtn:true, todayBtn:false, endDate:new Date() }).on('changeDate', function(ev){ if(ev.date){ $(endSelector).datepicker('setStartDate', new Date(ev.date.valueOf())) }else{ $(endSelector).datepicker('setStartDate',null); } }) $(endSelector).datepicker( { language: "zh-CN", autoclose: true, startView:0, format: "yyyy-mm-dd", clearBtn:true, todayBtn:false, endDate:new Date() }).on('changeDate', function(ev){ if(ev.date){ $(beginSelector).datepicker('setEndDate', new Date(ev.date.valueOf())) }else{ $(beginSelector).datepicker('setEndDate',new Date()); } }) } DatePicker("#date_begin","#date_end");
Bootstrap DatePicker實(shí)現(xiàn)日期選擇 開(kāi)始日期不大于結(jié)束時(shí)間,結(jié)束時(shí)間不小于開(kāi)始時(shí)間,開(kāi)始日期和結(jié)束日期都不大于當(dāng)前日期。
以上就是小編為大家?guī)?lái)的淺談Bootstrap的DatePicker日期范圍選擇全部?jī)?nèi)容了,希望大家多多支持腳本之家~
- bootstrap datepicker的基本使用教程
- JS控件bootstrap datepicker使用方法詳解
- BootStrap Datepicker 插件修改為默認(rèn)中文的實(shí)現(xiàn)方法
- bootstrap datepicker限定可選時(shí)間范圍實(shí)現(xiàn)方法
- bootstrap datepicker 與bootstrapValidator同時(shí)使用時(shí)選擇日期后無(wú)法正常觸發(fā)校驗(yàn)的解決思路
- BootStrap中Datepicker控件帶中文的js文件
- BootStrap的Datepicker控件使用心得分享
- bootstrap 日期控件 datepicker被彈出框dialog覆蓋的解決辦法
相關(guān)文章
Django框架利用ajax實(shí)現(xiàn)批量導(dǎo)入數(shù)據(jù)功能
這篇文章主要介紹了Django框架利用ajax實(shí)現(xiàn)批量導(dǎo)入數(shù)據(jù)功能的相關(guān)資料,需要的朋友可以參考下2016-03-03實(shí)例代碼講解ajax實(shí)現(xiàn)的無(wú)刷新分頁(yè)
這篇文章主要介紹了實(shí)例代碼講解ajax實(shí)現(xiàn)的無(wú)刷新分頁(yè)的相關(guān)資料,需要的朋友可以參考下2015-12-12Ajax的原生實(shí)現(xiàn)關(guān)于MIME類型的使用方法
下面小編就為大家分享一篇Ajax的原生實(shí)現(xiàn)關(guān)于MIME類型的使用方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-03-03切記ajax中要帶上AntiForgeryToken防止CSRF攻擊
在程序項(xiàng)目中經(jīng)常看到ajax post數(shù)據(jù)到服務(wù)器沒(méi)有加上防偽標(biāo)記,導(dǎo)致CSRF被攻擊,下面小編通過(guò)本篇文章給大家介紹ajax中要帶上AntiForgeryToken防止CSRF攻擊,感興趣的朋友一起學(xué)習(xí)吧2015-10-10比getjson好的底層函數(shù)是哪個(gè)有什么優(yōu)點(diǎn)
比getjson好的底層函數(shù)優(yōu)點(diǎn)在于如果網(wǎng)絡(luò)出問(wèn)題了,可以通過(guò)error方法來(lái)告訴用戶出錯(cuò),需要的朋友可以參考下2014-02-02jQuery Ajax 實(shí)例詳解 ($.ajax、$.post、$.get)
本文給大家分享jquery ajax實(shí)例文章,由于jquery在異步提交方面封裝的非常好,直接用ajax非常麻煩,jquery大大簡(jiǎn)化了我們的操作,不用考慮瀏覽器的問(wèn)題了。對(duì)jquery ajax實(shí)例相關(guān)介紹感興趣的朋友一起學(xué)習(xí)吧2015-11-11ie發(fā)送ajax請(qǐng)求返回上一次結(jié)果的解決方法
這篇文章主要介紹了ie發(fā)送ajax請(qǐng)求返回上一次結(jié)果的解決方法,需要的朋友可以參考下2014-03-03