【问题标题】:Is it possible to override jquery.validates various validation methods?是否可以覆盖 jquery.validates 各种验证方法?
【发布时间】:2011-03-03 19:33:41
【问题描述】:

我想覆盖 jquery 验证插件的“数字”验证。

这部分:

// http://docs.jquery.com/Plugins/Validation/Methods/number
number: function(value, element) {
    return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(value);
},

我做了一些搜索,但我能找到的只是如何覆盖消息(我已经做过)以及如何覆盖核心 jQuery 功能,这为我指明了这个方向......

$.fn.validate.prototype.methods.number = function (value, element) {
    return this.optional(element) || /^-?\d+(?:\,\d+)?$/.test(value);
};

使用此代码,我收到以下错误:

$.fn.validate.prototype.methods 是 未定义

我错过了什么吗?还是我在尝试做不可能的事?

如果这是不可能的,欢迎提出关于更改此功能的替代方法的建议,而不必向我的应用程序中的每个数字字段添加自定义验证器!

谢谢!

【问题讨论】:

  • 我相信number验证器方法可以在$.validator.methods中找到。没有尝试覆盖它,但也许这有帮助。
  • 使用 $.validator.methods.number = .... 有效!

标签: jquery plugins overriding validation


【解决方案1】:

是的,这个功能是内置在库中的,因此您无需处理内部问题就可以做到。

$.validator.addMethod("number", function(value, element) {
    return this.optional(element) || /^-?\d+(?:\,\d+)?$/.test(value);
});

【讨论】:

    猜你喜欢
    • 2014-07-07
    • 2021-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多