我正在使用bootstrap datepicker。我有两个日期选择器:一个用于开始日期,一个用于结束日期。结束日期应始终在开始日期之前或之后,因此为了用户友好,我想在结束日期日期选择器中禁用早于开始日期的日期。
根据文档,我正在做类似的事情:
$endDate.datepicker({
onRender: function(date) {
return date.valueOf() < startDate.valueOf() ? 'disabled' : '';
},
});
这样可行,但问题是每次打开日期选择器或开始日期更改时都不会调用onRender
(这就是我需要的)。有没有办法强制使用datepicker重新渲染,我可以在开始日期更改时执行,或者每次结束日期datepicker打开时触发的事件,我可以控制某些日期是否被禁用?
答案 0 :(得分:1)
我今天正在努力解决同样的问题。我通过更改开始日期的更改事件的enddate值来修复它。
.on('changeDate', function(ev) {
var newDate = new Date(ev.date)
newDate.setDate(newDate.getDate() +1);
endDate.setValue(newDate);
这会在更改startDate时强制结束日期重新呈现。
答案 1 :(得分:0)
我认为你可以使用fill()
方法:
startdate = $(startdate).datepicker().on('changeDate', function () {
enddate.fill(); // it's will trigger enddate onRender function
});
enddate = $(startdate).datepicker({
onRender: function(date) {
return date.valueOf() < startDate.valueOf() ? 'disabled' : '';
}
});
希望它可以提供帮助。