覆盖jquery日期

Man*_*imo 6 jquery date jquery-validate

我发现这个有用的代码允许英国日期在Chrome中运行,但我不确定如何实现它.它会覆盖默认日期功能.

date: function(value, element) {
     //ES - Chrome does not use the locale when new Date objects instantiated:
     //return this.optional(element) || !/Invalid|NaN/.test(new Date(value));
     var d = new Date();
     return this.optional(element) || !/Invalid|NaN/.test(new Date(d.toLocaleDateString(value)));
}, 
Run Code Online (Sandbox Code Playgroud)

如何将其添加到jQuery validate中以覆盖默认功能.

这是我找到代码示例的地方

fre*_*tje 19

你应该在加载jquery.validate库之后调用validator.addMethod方法,如下所示:

$(function () {
    // Replace the builtin US date validation with UK date validation
    $.validator.addMethod(
        "date",
        function (value, element) {
            var bits = value.match(/([0-9]+)/gi), str;
            if (!bits)
                return this.optional(element) || false;
            str = bits[1] + '/' + bits[0] + '/' + bits[2];
            return this.optional(element) || !/Invalid|NaN/.test(new Date(str));
        },
        "Please enter a date in the format dd/mm/yyyy"
    );
});
Run Code Online (Sandbox Code Playgroud)

请注意,我使用了另一种实际验证输入的方法,因为问题中的代码不起作用(toLocaleDateString不接受参数).您也可以将其更改为使用datechie库,正如Mrchief在评论中指出的那样.