显示jQuery datepicker年份

用jQuery datepicker,如何改变显示的年份范围? 在jQuery UI网站上,它表示默认是“显示当前年份前后10年”。 我想用这个作为生日select,而今天之前的10年是不行的。 这可以通过jQuery datepicker完成,还是必须使用不同的解决scheme?

链接到datepicker演示: http : //jqueryui.com/demos/datepicker/#dropdown-month-year

如果你向下看演示页面,你会看到一个“Restricting Datepicker”部分。 使用下拉菜单指定“ Year dropdown shows last 20 years ”演示,并点击查看源代码:

 $("#restricting").datepicker({ yearRange: "-20:+0", // this is the option you're looking for showOn: "both", buttonImage: "templateshttp://img.dovov.comcalendar.gif", buttonImageOnly: true }); 

你会想要做同样的(显然改变-20-100或某物)。

为什么不显示年份或月份select框?

 $( ".datefield" ).datepicker({ changeMonth: true, changeYear: true, yearRange:'-90:+0' }); 

别人没有提的是你也可以设置硬编码的date范围:

例如:

 yearRange: "1901:2012" 

尽pipe不这样做是可取的,但是,这是一个完全有效的选项(如果你正在寻找一个目录中的特定年份 – 比如“1963:1984”),这个选项是有用的。

出生date字段(以及我使用的)的完美之处与Shog9所说的类似,不过我要给出一个更具体的DOB示例:

 $(".datePickerDOB").datepicker({ yearRange: "-122:-18", //18 years or older up to 122yo (oldest person ever, can be sensibly set to something much smaller in most cases) maxDate: "-18Y", //Will only allow the selection of dates more than 18 years ago, useful if you need to restrict this minDate: "-122Y" }); 

希望未来的谷歌search这个有用的:)。

添加到@Shog9发布的内容中,您还可以在beforeShowDay:callback函数中单独限制date。

您提供一个函数,它接受一个date并返回一个布尔数组:

 "$(".selector").datepicker({ beforeShowDay: nationalDays}) natDays = [[1, 26, 'au'], [2, 6, 'nz'], [3, 17, 'ie'], [4, 27, 'za'], [5, 25, 'ar'], [6, 6, 'se'], [7, 4, 'us'], [8, 17, 'id'], [9, 7, 'br'], [10, 1, 'cn'], [11, 22, 'lb'], [12, 12, 'ke']]; function nationalDays(date) { for (i = 0; i < natDays.length; i++) { if (date.getMonth() == natDays[i][0] - 1 && date.getDate() == natDays[i][1]) { return [false, natDays[i][2] + '_day']; } } return [true, '']; } 

au,nz等即为展示国家date的国家(澳大利亚,新西兰,爱尔兰等)的国家代码。 如代码所示,这些值与“_day”结合,并作为CSS样式传回到当天。 相应的风格的forms如下所示,它将当天的文本移开,并用国旗的图像replace它。

 .au_day { text-indent: -9999px; background: #eee url(au.gif) no-repeat center; } 

用新风格传回的“错误”值表示可能不会select这些日子。

  $("#DateOfBirth").datepicker({ yearRange: "-100:+0", changeMonth: true, changeYear: true, }); 

yearRange:'1950:2013',//指定硬编码的年份范围或这种方式

yearRange:“-100:+0”,//最近一百年

这将有助于显示下拉select年份和月份。

我认为这可能也适用

 $(function () { $(".DatepickerInputdob").datepicker({ dateFormat: "d M yy", changeMonth: true, changeYear: true, yearRange: '1900:+0', defaultDate: '01 JAN 1900' });