第三个:param,是传入的参数,例如: minlength : 6 里的参数为6; rangelength:[2,10] 里的参数为2和10。当你没有传入参数,这个可以省略不写。
在这个回调函数里有一个this.optional(element)函数要特别注意。当表单的输入值为空时,即element的值为空,this.optional(element)的返回值为true,类似于判空操作,也就是说该表单输入项不是必填项,当不填时通过了验证。如果element的值不为空,this.optional(element)的返回值就是false,这时就要根据 || 后面的验证来判断最终的返回为true 或false。所以当某个输入项不是必填项但如果填写了又需要按照一定的规则来验证的时候,一定要记得带上this.optional(element)。
第三个参数:验证的提示信息。
这个参数可以直接是一句提示信息,例如,"这是必填字段";也可以通过创建函数jQuery.validator.format(value)来显示,例如,$.validator.format("请输入长度在 {0} 到 {1} 之间的字符串"),其中 {0} {1} 代表该方法的参数,也就是回调(callback)函数里的第三个参数param。
官网提供的additional-methods.js里包含一些常用的验证方式,比如lettersonly,ziprange,nowhitespace等,但我粗略的看了一下,发现大部分只是仅供参考,实用性不强,不能直接使用。
我整理了几个网上找到的验证规则,当然也仅供参考。验证规则的核心就是正则表达式,这个得学。
// 邮政编码验证 jQuery.validator.addMethod("isZipCode", function(value, element) { var tel = /^[0-9]{6}$/; return this.optional(element) || (tel.test(value)); }, "请正确填写您的邮政编码"); // 手机号码验证 jQuery.validator.addMethod("mobile", function(value, element) { var length = value.length; var mobile = /^(13[0-9]|14[0-9]|15[0-9]|18[0-9])\d{8}$/; return this.optional(element) || (length == 11 && mobile.test(value)); }, "手机号码格式错误"); // QQ号码验证 jQuery.validator.addMethod("qq", function(value, element) { var tel = /^[1-9]\d{4,10}$/; return this.optional(element) || (tel.test(value)); }, "qq号码格式错误"); // IP地址验证 jQuery.validator.addMethod("ip", function(value, element) { var ip = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/; return this.optional(element) || (ip.test(value) && (RegExp.$1 < 256 && RegExp.$2 < 256 && RegExp.$3 < 256 && RegExp.$4 < 256)); }, "Ip地址格式错误"); // 字母和数字的验证 jQuery.validator.addMethod("chrnum", function(value, element) { var chrnum = /^([a-zA-Z0-9]+)$/; return this.optional(element) || (chrnum.test(value)); }, "只能输入数字和字母(字符A-Z, a-z, 0-9)"); // 中文的验证 jQuery.validator.addMethod("chinese", function(value, element) { var chinese = /^[\u4e00-\u9fa5]+$/; return this.optional(element) || (chinese.test(value)); }, "只能输入中文");
如果有什么地方写错了或者写的不够好,希望大大们能提出来。还有,欢迎留言评论,一起学习。
您可能感兴趣的文章: