jQuery Validator 接受无效日期 [关闭]

Posted

技术标签:

【中文标题】jQuery Validator 接受无效日期 [关闭]【英文标题】:jQuery Validator accepting invalid dates [closed] 【发布时间】:2012-12-26 10:32:44 【问题描述】:

为什么 jQuery Validator 接受这个作为有效日期?

01/123/1

如果您输入该日期,它将通过验证。如何确保用户输入的日期有效?我不想使用日期选择器。

验证器链接:http://docs.jquery.com/Plugins/Validation/Methods/date

【问题讨论】:

页面demo显示日期无效 我使用的是 firefox,它显示为有效。我刚刚检查了 Chrome,它说无效...您正在测试什么浏览器? 我用chrome查了一下,贴出你的源码 为什么我的来源很重要? jQuery 网站上的代码在 Firefox 中不起作用。 使用 jquery 提交错误报告 【参考方案1】:

由于内置日期功能在 Firefox 中不起作用,这里有一个适用于所有浏览器的扩展方法。这还会检查以确保日期有效,99/99/9999 将不起作用。

    $.validator.addMethod(
        "mmddyyyy",
        function(value, element) 
            var match = /^(\d1,2)\/(\d1,2)\/(\d4)$/.exec(value),
            isDate = function (m, d, y) 
                return m > 0 && m < 13 && y > 0 && y < 32768 && d > 0 && d <= (new Date(y, m, 0)).getDate();
            ;
            return match && isDate(match[1], match[2], match[3]);
        ,
        "Please enter a date in the format mm/dd/yyyy."
    );



    $('#Form1').validate(
        rules: 
            birthDate:  required: true, mmddyyyy: true 
        
    );

);

【讨论】:

以上是关于jQuery Validator 接受无效日期 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

防止 Grails 2.4.4 接受无效日期

spring JPA java.sql.Date 接受无效日期

ORA-01722: 无效的数字,但数据类型是日期,它不会以任何方式接受它

jQuery data('datepicker').getDate() 返回无效日期

jQuery验证附加方法德语日期

使用 jQuery 验证插件自定义日期格式