显示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' });