jQuery日历分页限制

时间:2017-10-09 15:38:04

标签: jquery

我有一个使用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

1 个答案:

答案 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月之前,但用户仍然可以在输入中手动输入任何日期。

要停止此操作,您需要设置minDatemaxDate而不是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
});

I've updated the jsFiddle.