2011-03-03 42 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

相關問題