jQuery.validator.addMethod 添加验证方法



jQuery.validator.addMethod( name, method [, message ] )
参考:http://jqueryvalidation.org/jQuery.validator.addMethod/


第一个参数 : “byteMaxLength”  是定义方法名,必须保证方法名唯一,是一个identifier标志。

第二个参数: 是下面这个回调(callback)函数:

第三个参数: 验证的提示信息 为了显示函数的验证的信息,这个参数也可以通过创建函数jQuery.validator.format(value)来显示,其中 {0} 代表 该方法 的参数如果  方法调用如: byteMaxLength : 10  上面的输入就是 不能超过10个字节,(一个中文字算两个字节)

jQuery.validator.addMethod("byteMaxLength", 
    function(value, element, param) {  
        var length = value.length;  
        for ( var i = 0; i < value.length; i++) {  
            if (value.charCodeAt(i) > 127) {  
                length++;  
            }  
        }  
        return this.optional(element) || (length <= param);  
    }, $.validator.format("不能超过{0}个字节(一个中文字算2个字节)"));  

回调函数有三个参数:
  第一个:value ,是当前验证的元素的值。

  第二个: element  是当前被验证的元素。

 第三个:是传入的参数,例如: min : 5  这个参数为5,   对于本方法调用的时候,例如:byteMaxLength:10  其中10为传入参数。

这个方法的方法名为: byteMaxLength  回调函数如上,


return  this.optional(element)   这个函数调用的意思是: 用于表单输入值不为空时验证,当field为空时,即element的值为空,this.optional(element) = true, 就是说该filed不是必填项,当不填时也通过验证, 如果element的值不为空  this.optional(element) = false 就要根据  ||  后面的验证来判断返回为truefalse的目的,总结起来 this.optional(element) 就是为了说明  当前验证的 field不是必填项。











你可能感兴趣的:(Jquery,validate)