强制引导日期选择器重新渲染

时间:2014-04-29 14:10:38

标签: javascript jquery twitter-bootstrap date datepicker

我正在使用bootstrap datepicker。我有两个日期选择器:一个用于开始日期,一个用于结束日期。结束日期应始终在开始日期之前或之后,因此为了用户友好,我想在结束日期日期选择器中禁用早于开始日期的日期。

根据文档,我正在做类似的事情:

$endDate.datepicker({
  onRender: function(date) {
    return date.valueOf() < startDate.valueOf() ? 'disabled' : '';        
  },                                                                      
});

这样可行,但问题是每次打开日期选择器或开始日期更改时都不会调用onRender(这就是我需要的)。有没有办法强制使用datepicker重新渲染,我可以在开始日期更改时执行,或者每次结束日期datepicker打开时触发的事件,我可以控制某些日期是否被禁用?

2 个答案:

答案 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' : '';        
    }
});

希望它可以提供帮助。