再努力一点点

没有烟抽的日子
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

How to add a custom validation method for jQuery validate plugin

Posted on 2010-02-24 15:08  ZhangPeng.Chen  阅读(334)  评论(0)    收藏  举报
例子
验证PostCode
期望格式1234AA或1234 AA
对应正则[0-9]{4}(\s)?[a-zA-Z]{2}

(function($) {
    $.validator.addMethod(
"postCode"function(value, element) {
        
return this.optional(element) || /^[0-9]{4}(\s)?[a-zA-Z]{2}$/.test(value);
    }, 
"Please enter a valid post code.");
})(jQuery);

格式通常都是以上形式,我们需要改变的地方一般是postCode也就是ruleName, defaultErrorMessage正则部分。
其中this.optional(element)主要是用来验空的,如果是空的,也就没有必要继续后面的正则验证了。

附带提一下:
$.validator.addMethod("rule1", function(value, element) { 

}, "rule1");

$.validator.addMethod("rule2", function(value, element) {
  $.validator.methods.rule1.call(this, value, element); // rule2中先调用rule1进行验证然后再进行一些自已的验证

}, "rule2");

$.validator.addMethod("rule3", function(value, element) {

  $.validator.methods.rule2.call(this, value, element); // rule3中先调用rule2进行验证然后再进行一些自己的验证
}, "rule3");

然后我们在前台直接使用rule3 <input id="test" class="rule3" /> // 这样只会出现rule3的错误信息,而不会出现rule1, rule2的错误信息。
如果当需要显示rule1, rule2的错误信息时,则需要把这三个rule独立开,或者直接使用<input id="test" class="rule1 rule2 rule3" />