使用jQuery datepicker,如何更改显示的年份范围?在jQuery UI网站上,默认设置为“显示当前年份之前和之后的10年”。我想将其用于生日选择,今天之前的10年是不好的。可以使用jQuery datepicker完成此操作,还是必须使用其他解决方案?
链接到datepicker演示:http : //jqueryui.com/demos/datepicker/#dropdown-month-year
使用jQuery datepicker,如何更改显示的年份范围?在jQuery UI网站上,默认设置为“显示当前年份之前和之后的10年”。我想将其用于生日选择,今天之前的10年是不好的。可以使用jQuery datepicker完成此操作,还是必须使用其他解决方案?
链接到datepicker演示:http : //jqueryui.com/demos/datepicker/#dropdown-month-year
Answers:
如果稍微看一下演示页面,您将看到“限制日期选择器”部分。使用下拉菜单指定“ Year dropdown shows last 20 years
”演示,然后点击查看源代码:
$("#restricting").datepicker({
yearRange: "-20:+0", // this is the option you're looking for
showOn: "both",
buttonImage: "templates/images/calendar.gif",
buttonImageOnly: true
});
您将需要执行相同的操作(显然更改-20
为-100
或进行其他操作)。
c
代替+0
,所以yearRange: "-20:c",
为什么不显示年或月选择框?
$( ".datefield" ).datepicker({
changeMonth: true,
changeYear: true,
yearRange:'-90:+0'
});
尽管我将给出一个更具体的DOB示例,但最适合于出生日期字段(以及我使用的日期)的方法类似于Shog9所说的:
$(".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"
});
希望未来的Google员工觉得这很有用:)。
除了@ Shog9发布的内容外,您还可以在beforeShowDay:回调函数中分别限制日期。
您提供了一个带有日期并返回布尔数组的函数:
"$(".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, ''];
}