【问题标题】:jQuery Validator accepting invalid dates [closed]jQuery Validator 接受无效日期 [关闭]
【发布时间】: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 提交错误报告

标签: jquery jquery-plugins jquery-validate


【解决方案1】:

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

    $.validator.addMethod(
        "mmddyyyy",
        function(value, element) {
            var match = /^(\d{1,2})\/(\d{1,2})\/(\d{4})$/.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 }
        }
    });

});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-02
    • 2016-02-10
    • 1970-01-01
    • 2014-09-17
    • 2012-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多