2011-03-03 85 views
5

我想重写jquery validate插件的“数字”验证。是否有可能重写jquery.validate各种验证方法?

这一部分:

// 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 is undefined

我错过了什么吗?还是我想要做不可能的事情?

如果这是不可能的,对于改变此功能的替代方法的建议,无需为我的应用程序中的每个单个数字字段添加自定义验证器,我们将非常欢迎!

谢谢!

+1

我相信#号验证方法可以在'$ .validator.methods'中找到。还没有试图重写它,但也许有帮助。 – polarblau 2011-03-04 23:28:46

+1

使用$ .validator.methods.number = ....作品! – Patricia 2011-03-07 13:02:54

回答

15

是的,这个功能是内置到库中,所以你可以做到这一点,而无需处理内部。

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

工程就像一个魅力!非常感谢! – Patricia 2011-03-07 13:03:20

相关问题