【问题标题】:Override jquery date覆盖 jquery 日期
【发布时间】:2011-07-28 21:47:39
【问题描述】:

我发现了这段有用的代码,它允许英国日期在 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)));
}, 

如何将它添加到 jQuery 验证中以覆盖默认功能。

Here is where我找到了代码示例

【问题讨论】:

标签: jquery date jquery-validate


【解决方案1】:

您应该在加载 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"
    );
});

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-21
    • 2017-06-01
    • 1970-01-01
    • 2018-10-14
    相关资源
    最近更新 更多