jquery 检查日期选择器的年份
jquery Check the year of a datepicker
>我在表单中使用来自jqueryui的日期选择器。现在我想验证出生年份。这意味着我的用户不能输入高于 1998 年的年份(他/她必须年满 18 岁)。如何检查该值是否不高于 1998?这就是我到目前为止所做的。
<input type="text" id="birthyear" required><br />
$(function(){
$('#birthyear').datepicker({
minDate: new Date(1900,1-1,1),
defaultDate: new Date(1991,1-1,1),
changeYear: true,
yearRange: '-110:-18'
});
});
您可以使用
getDate从日期选取器获取Date
对象:
var date = $("#birthyear").datepicker("getDate");
从那里你可以得到年份:
var year = date.getFullYear();
如果要确保用户至少年满 18 岁,则可能不仅要检查年份:还需要确保今天的日期是他们 18 岁生日之后。
我可以看到几种方法可以实现这一点
-
设置最大截止日期,以防止任何人选择超过您确定的日期
$('#birthyear').datepicker({ minDate: new Date(1900,1-1,1), defaultDate: new Date(1991,1-1,1), changeYear: true, yearRange: '-110:-18', maxDate: new Date(1997, 11, 31) });
-
初始化时将验证函数绑定到
onChangeMonthYear
事件$('#birthyear').datepicker({ minDate: new Date(1900,1-1,1), defaultDate: new Date(1991,1-1,1), changeYear: true, yearRange: '-110:-18', onChangeMonthYear: function(year) { if (year > 1998) ; // alert user of error } });
-
有点棘手,但如果你已经有一些客户端验证函数,你可以像这样获取
Date
对象:$('#birthyear').datepicker('getDate').getFullYear()
希望有帮助
我看到其他一些答案正在向您展示如何确认年份,但几年过去了。我对一个项目也有类似的要求,需要验证用户的年龄而不是硬编码一年,虽然你要求检查年份(但括号中有年龄要求),我会建议一个更动态和可维护的解决方案如下。
//Initialize datepicker
$(function() {
$( "#dob" ).datepicker({
changeMonth: true,//allow month select
changeYear: true,//allow year select
yearRange: "-100:+0",//set range of year select
dateFormat: 'MM dd, yy',//set format of "displayed element"
altField: "#hidden-dob",//set alt field "hidden element"
altFormat: "yy/mm/dd",//set format for hidden element
onClose: function() {
$('#hidden-age').val(getUserAge($('#hidden-dob').val()));
}
});
});
//year/month/day
//Pass the date to retrieve the users age FORMAT <yy/mm/dd> "The function that you need"
function getUserAge(dateString) {
var today = new Date();
var dob = new Date(dateString);
var age = today.getFullYear() - dob.getFullYear();
var month = today.getMonth() - dob.getMonth();
if (month < 0 || (month === 0 && today.getDate() < dob.getDate())) {
age--;
}
return age;
}
相关文章:
- 如何检查日期选择器和时间选择器元素是否使用JQuery/Javascript设置
- 检查选择器类型jquery
- 检查选择器在jQuery中是否包含文本(即不是媒体)
- 用于检查未使用的CSS/JavaScript选择器的NetBeans插件
- 使用jquery在产品选择器中添加下拉列表检查
- jQuery:检索日期选择器日期,检查是否在日期范围内,显示/隐藏字段
- Jquery - 检查选择器是否以数字结尾
- 检查有效的日期选择器
- 警告:失败的 propType:在“维度选取器”中未指定所需的属性“维度名称”.检查“连接(维度选择器)”的渲染方法
- 如何检查是否已在给定的jQuery选择器上调用了方法
- jQuery 'on' 单击不检查更新的选择器
- 检查后显示时间选择器复选框,导轨(Redmine)
- jquery 检查日期选择器的年份
- 如何检查选择器是否有qtip
- 如何使用jQuery'检查连字符后的内容;s”;属性包含前缀选择器”;
- 如何使用jquery检查变量选择器中的属性
- 通过选择器检查对象是否存在,使用jQuery或Javascript返回布尔值
- 如何检查2个jQuery选择器是否指向相同的元素
- 检查CasperJS中是否存在标签(而不是选择器)
- 如何检查两个jQuery选择器是否选择了相同的元素