我有一个使用jQuery datepicker的input
类型date
。从文档中可以看出,默认情况下,年份范围是:c-10:c+10
,它将显示过去10年和当前所选日期的未来10年。
问题是我不希望这是一件事,我希望能够从默认位置获得更多选项。我已经尝试将插件更改为:yearRange:"c-20:c+20"
但它不起作用,它保持-10 + 10分页。我已经尝试过以下解决方案:
$( ".selector" ).datepicker({
yearRange: "2002:2012"
});
哪个会起作用,但有多年的限制,这不是我想要的?我已经尝试过以下一个:
$( ".selector" ).datepicker({
minDate: new Date(1990, 1 - 1, 1)
});
但也没有奏效,行为仍然是c-10:c+10
。
答案 0 :(得分:0)
你试图从今天的日期开始设置不同于-10或+10的范围,对吗?
由于该选项需要一个字符串,您可以构建一个字符串来创建自定义范围:
var earliest_date = new Date().getFullYear() - 20;
var latest_date = new Date().getFullYear() + 20;
// date_range will be 1997:2037
var date_range = earliest_date + ':' + latest_date;
$( ".selector" ).datepicker({
yearRange: date_range
});
希望这有帮助!
<强>更新强>
我注意到在jsFiddle中,分页的行为符合预期,阻止用户超过2037年12月或1997年1月之前,但用户仍然可以在输入中手动输入任何日期。
要停止此操作,您需要设置minDate
和maxDate
而不是yearRange
。
var earliest_date = new Date(new Date().setFullYear(new Date().getFullYear() - 20))
var latest_date = new Date(new Date().setFullYear(new Date().getFullYear() + 20))
//var date_range = earliest_date + ':' + latest_date;
$( ".selector" ).datepicker({
minDate: earliest_date,
maxDate: latest_date
});