我正在使用jquery datepicker插件创建一个出生日期输入。该插件有效,但我想验证只有18岁生日的人才会被允许。我试过限制年份,但我有一个错误分配大小超载和它指的是年份。
这是我的代码:
$(function() {
var dateNow = ($.now() - 18);
$( "#birthdate" ).datepicker({
yearRange: "1920:" + dateNow,
changeMonth: true,
changeYear: true,
dateFormat: 'yy-mm-dd'
});
});
答案 0 :(得分:1)
尝试类似:
$(function() {
var now = new Date();
now.setFullYear(now.getFullYear() - 18);
$( "#birthdate" ).datepicker({
yearRange: "1920:" + now.getFullYear(),
changeMonth: true,
changeYear: true,
dateFormat: 'yy-mm-dd'
});
});
答案 1 :(得分:1)
如果您必须在用户输入日期后进行检查,请使用以下代码段。
<强> Demo Fiddle. 强>
$(function() {
$('#birthdate').datepicker({
changeMonth: true, maxDate: '0',changeYear: true, yearRange: '1900:2014', dateFormat: 'dd-mm-yy',
onClose: function(){
var today = new Date(),
birthday = $('#birthdate').datepicker("getDate"),
age = (
(today.getMonth() > birthday.getMonth())
||
(today.getMonth() == birthday.getMonth() && today.getDate() >= birthday.getDate())
) ? today.getFullYear() - birthday.getFullYear() : today.getFullYear() - birthday.getFullYear()-1;
if(age>=18){
alert('18+');
}else{
alert('not 18');
}
}
});
});
如果您希望将用户限制在18以下,请更改yearRange
的{{1}}属性
<强> Demo For this 强>