bootstrap 生日选择_Bootstrap的DatePicker日期范围选择

本文介绍了如何在Bootstrap中利用DatePicker插件实现日期选择时,确保开始日期小于结束日期,且都不大于当前时间。通过监听changeDate事件并调整另一输入框的可选范围,以及处理清除按钮的异常,确保日期输入的正确性。同时,为了显示中文界面,还需要引入bootstrap-datepicker.zh-CN.min.js。
摘要由CSDN通过智能技术生成

用日期插件时,经常会有一种需求。两个input框选择。开始时间小于结束时间,结束时间大于开始时间,开始时间和结束时间都不大于当前时间。

我们当然可以用选择的结果来判断输入正确与否。但是更好的办法是让我们的日期选择插件做出一些限制。

Bootstrap搭配了很优秀的日期选择插件。DatePicker和DateTimePicker。

两者功能很类似。使用方法也是差不多的。DatePicker支持更多的事件和设置。

看api知道日期变化的时候会有一个事件changeDate。当选择的日期变化的时候,会调用我们给这个事件的回调。但是遗憾的是当我们直接在输

入框中输入或删除日期的时候貌似并不会触发到这个事件。所以可以把input框添加属性

readonly。只读状态,并且给日期控件一个清除按钮。这样日期的变化正常情况下就只有通过日期插件来控制了。

然而当使用DateTimePicker插件点击清除按钮的时候,会报错 Uncaught TypeError: Cannot read property 'getTime' of null,结果导致changeDate事件也不能正常使用。

所以就改用DatePicker插件。

然后当一个输入框日期变化(包括清除)的时候,changeDate事件触发,在其回调函数里修改另一个输入框的可选范围。

另外,DatePicker要使界面显示中文,也需要加载css。bootstrap-datepicker.zh-CN.min.js。

functionDatePicker(beginSelector,endSelector){//仅选择日期

$(beginSelector).datepicker(

{

language:"zh-CN",

autoclose:true,

startView:0,

format:"yyyy-mm-dd",

clearBtn:true,

todayBtn:false,

endDate:newDate()

}).on('changeDate', function(ev){if(ev.date){

$(endSelector).datepicker('setStartDate', newDate(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:newDate()

}).on('changeDate', function(ev){if(ev.date){

$(beginSelector).datepicker('setEndDate', newDate(ev.date.valueOf()))

}else{

$(beginSelector).datepicker('setEndDate',newDate());

}

})

}

DatePicker("#date_begin","#date_end");

Bootstrap DatePicker实现日期选择 开始日期不大于结束时间,结束时间不小于开始时间,开始日期和结束日期都不大于当前日期。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值