2017-10-09 69 views
3

我有一个input类型date使用jQuery datepicker。从文档中可以看出,默认年份范围是:c-10:c+10,它将显示当前选定日期的过去10年和未来10年。jQuery日历分页限制

问题是我不希望这是一件事,我想能够从默认位置有更多的选项。我已经尝试将插件更改为: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

您试图从今天的日期设置不同于-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年之前一月,但用户仍然可以手动输入任何日期到输入。

要停止此操作,您需要设置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.

+0

不是完美的解决方案,但该解决方案我还以为可以做的伎俩,而我开始实施。我会接受你的回答 –

+0

谢谢,虽然看到我更新的答案,但它可能比我最初发布的更合适。 –

+0

该解决方案不适用于我的日历...我的日历的问题是您可以选择一年,例如我想将我的生日设置为12-09-1950。当我用你的解决方案打开日历时,我会看到的年份范围是-10,+ 10,我需要加载剩下的日历,因为它们不会从一开始就加载。 yearRange做到这一点,问题是例如添加yearRange中的今天日期的限制。 –