jQuery - 无法使用 Twitter Bootstrap 的日期选择器禁用过去的日期

4
在Rails 3.2.9中,我正在使用Twitter Bootstrap gem并尝试使用其日期选择器。在这个日期选择器工具中,我需要禁用过去的日期,启用当前日期和未来的日期。但现在我无法禁用过去的日期。
我已经尝试了不同的方法,
例如1:
function scriptDatePicker(id){
var today = new Date();
var dd = today.getDate();
var mm = ("0" + (today.getMonth() + 1)).slice(-2) //January is 0!
var yyyy = today.getFullYear();
$('#' + id).datepicker({
    format: "yyyy-mm-dd",
    startDate: yyyy + '-' +  mm + '-' + dd
});
}

例子2:

$('#id').datepicker({startDate: '01/01/2013'});

例子3:

$("#datepicker").datepicker({ minDate: 0 });

例4:

$('.datepicker').datepicker('setStartDate', '2013-01-01');

我尝试了一些其他的例子,但都没有成功。请帮我解决这个问题。

2个回答

6

HTML标记:

<input id="dpd1" type="text" data-date-format="yyyy-mm-dd">

jQuery:

var nowTemp = new Date();
var now = new Date(nowTemp.getFullYear(), nowTemp.getMonth(), nowTemp.getDate(), 0, 0, 0, 0);

$('#dpd1').datepicker({
  onRender: function(date) {
    return date.valueOf() < now.valueOf() ? 'disabled' : '';
  }
});

Live example: http://jsfiddle.net/Jdqvk/2/


完美!对于未来的日期也适用,将 date.valueOf() < now.valueOf() 更改为 date.valueOf() > now.valueOf()。 - zetanova
@Miljan Puzovic....非常简单而强大的脚本,可以迄今为止禁用日期...非常感谢您。 - SRy

0

对于想要仅显示当前年份并禁用过去和未来年份的所有日期的人,这就是方法:

标记

<input id="dp1" type="text" data-date-format="yyyy-mm-dd">

Javascript

var nowTemp = new Date();
var now = new Date(nowTemp.getFullYear());

$('#dp1').datepicker({
  onRender: function(date) {
    return date.getFullYear() < now.valueOf() ? 'disabled' : (date.getFullYear() > now.valueOf() ? 'disabled' : '');
  }
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接