jquery - 特定年龄的最小和最大日期的 jQuery 验证
问题描述
我需要输入 DOB,但用户的最低年龄应为 18 岁,最高年龄应为 60 岁
由于添加了 jQuery 方法,但响应不佳,在任何 DOB 上显示最大年龄为 60 岁
jQuery方法的代码
$.validator.addMethod("minDate", function (value, element) {
var min = new Date(<?php echo date("U",strtotime("-60 year"));?>);
var inputDate = new Date(value);
if (inputDate < min)
return true;
return false;
}, "Maximum Age 60 Years");
$.validator.addMethod("maxDate", function (value, element) {
var max = new Date(<?php echo date("U",strtotime("-18 year"));?>);
var inputDate = new Date(value);
if (inputDate > max)
return true;
return false;
}, "Minimum Age 18 Years");
表单验证规则
"user[DOB]": {
required: true,
minDate:true,
maxDate:true
},
解决方案
正如我在评论中提到的那样,您的验证是倒退的。如果无效,则返回 true,否则返回 false。
尝试:
$.validator.addMethod("minDate", function (value, element) {
// new Date(-356780166)..
var min = new Date(<?php echo date("U",strtotime("-60 year"));?>);
var inputDate = new Date(value);
if (inputDate < min)
return false;
return true;
}, "Maximum Age 60 Years");
$.validator.addMethod("maxDate", function (value, element) {
var max = new Date(<?php echo date("U",strtotime("-18 year"));?>);
var inputDate = new Date(value);
if (inputDate > max)
return false;
return true;
}, "Minimum Age 18 Years");
如果这不起作用,请查看您的 inputDate 返回的内容,例如console.log(inputDate);
推荐阅读
- sql - SQL 按拆分数据分组
- google-cloud-platform - Deployment Manager 更新存储桶名称失败
- ios - Flutter TextField 键盘类型在 ios 上不起作用
- c# - .Net Core - SQL Server 地理数据类型异常
- rider - 当双击鼠标启用 Ins
- c# - 用于统一的顶级自动化/脚本/api?
- python - 将对象集群替换为生成最高 SI 分数的新集群
- c# - 在 Unity 中使用 Firebase 云消息传递时如何获取当前活动?
- javascript - 比较同一对象中的 2 个数组键和值
- c++ - 有没有办法将无向图转换为 (x,y) 坐标系?