Twitter Bootstrap datepicker:如何启用只有特定的日期范围

问题描述:

我正在基于Twitter Bootstrap使用从https://github.com/eternicode/bootstrap-datepicker(这是从其他版本的叉)datepicker的一些项目,但它缺少一个非常重要的功能,我需要 - 如何只启用特定的日期范围(例如,从过去15天到今天),所以任何其他日期都不能被选中(不可点击)。Twitter Bootstrap datepicker:如何启用只有特定的日期范围

我发现这里的SO类似的解决方案,即禁用周六和周日: Limit bootstrap-datepicker to weekdays only? http://jsfiddle.net/katowulf/zNbUT/5/,但我不知道如何将其调整到我的需要。

在此先感谢。

您链接到最终使用相当多的黑客将类似的问题,但你想要的是一个简单多了 - 你正在寻找的startDateendDate选项:

$('#dp1').datepicker({ 
    format: 'mm-dd-yyyy', 
    startDate: '-15d', 
    endDate: '+0d' // there's no convenient "right now" notation yet 
}); 

这些选项可以采用Date对象,timedelta字符串(正如我在此处所做的)或给定的format后面的日期字符串。

演示:http://jsfiddle.net/zNbUT/131/

此外,请确保您使用的代码从GitHub - eyecon.ro的副本是原代码,用旧的错误和没有更新的功能。

+0

已在http://stackoverflow.com/questions/11933173/how-to-restrict-the-selectable-date-ranges-in-bootstrap-datepicker上找到此解决方案。是否有任何选项可使限制日期“变灰”,以便用户在尝试之前可以查看可以选择的日期? – jabbalesku

+0

如果您使用回购协议中包含的样式,则残疾人日期应该已变灰。 – eternicode

var startDate = new Date(); 
startDate.setDate(startDate.getDate()-15); 

var endDate = new Date(); 

$('#dp1') 
.datepicker().on('changeDate', function(ev){ 
    if (ev.date.valueOf() > endDate.valueOf()){ 
     alert('The date selected is too far in the future.'); 
    } else if (ev.date.valueOf() < startDate.valueOf()){ 
     alert('The date selected is too far in the past'); 
    } else { 
     alert('fine') 
    } 

});

http://jsfiddle.net/XSmx6/14/

+0

不工作。尝试在这里:http://jsfiddle.net/XSmx6/1/ – jabbalesku

+0

你必须设置一个处理程序,并取消选择,如果它超出范围。 –

+0

@jabbalesku我已更新并添加了jsfiddle – Harry