jQuery验证特定年龄的最小和最大日期

时间:2018-09-11 14:19:35

标签: jquery jquery-validate

我需要输入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
            },

2 个答案:

答案 0 :(得分:0)

正如我在评论中提到的,您的验证向后。如果无效,则返回true,否则返回false。

尝试:

Intent getIntent = getIntent();
//call a TextView object to set the string to
TextView text = (TextView)findViewById(R.id.textview_id);
text.setText(getIntent.getStringExtra("string_name"));

如果这不起作用,请查看您的inputDate返回的内容,例如$.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");

答案 1 :(得分:-2)

很抱歉给您带来麻烦,感谢所有支持-以下代码解决了我的错误

$.validator.addMethod("dobRange", function (value, element) {
        var min = new Date(<?php echo date("U",strtotime("-60 year"));?>);
        var max = new Date(<?php echo date("U",strtotime("-18 year"));?>);
        var inputDate = new Date(value);
        if (inputDate < min || inputDate > max)
            return false;
        return true;
    }, "Age Limit 18 to 60 Years");