龙空技术网

2021年了,你还不会validate的使用呀,快看过来

is芳小芳 576

前言:

今天我们对“jqueryvalidate”都比较关注,咱们都需要剖析一些“jqueryvalidate”的相关知识。那么小编也在网摘上收集了一些关于“jqueryvalidate””的相关资讯,希望我们能喜欢,各位老铁们一起来了解一下吧!

1、validate的引用

#jQuery 有很多表单验证插件 #

#最常用的插件之一 #

//validate插件依赖于jquery,所以需要如此引用<script src=";></script><script src=";></script>
2、基本校验使用(标签上的为空及长度等验证)
<form action=""  class="demoform" id="demoForm">  <div class="index-form">    <div class="common-form-label">姓名:</div>		<div class="common-input">      <!-- 插件带有基本的校验规则,比如 data-rule-required="true"为空校验等-->      <input type="text" name="name" placeholder="请输入学生姓名"      data-rule-required="true" data-msg-required="请输入竞赛学生姓名"       data-rule-minlength="5" data-msg-minlength="最少需要5个字符" >    </div>	</div>	<div class="index-form">  	<input type="submit" value="查询"  class="sk-btn">  </div> </form>
3、远程校验 remote
$('#demoForm').validate({  debug:true,//加debug,表单就不会提交,适合调试  rules:{//规则,规则的操作对象,都是其name属性 name="name"    name:{      //name.php 表示接口,在输入后,会远程校验name的输入值      // remote:'name.php' //默认是get请求,参数是name的输入值      remote:{        url:"tel.php",        type:"post",        //参数是name输入值和当前时间        data:{          loginTime:function(){            return +new Date;//当前时间          }        },      }    },  },  messages:{//提示信息    name:{      remote:"用户已存在" //远程校验的错误信息    }  },  invalidHandler : function(event,validator){      //console.log("错误数:"+validator.numberOfInvalids());    return false;//invalidHandler 无效表单提交后允许的函数  },  submitHandler : function(form) {    //验证通过后允许的函数    //console.log($(form).serialize())  },});
4、基本验证方法
 rules:{//规则   tel:{       rangelength:[1,10], //长度范围       range:[3,8]//数字的范围       email:true,//合法的邮件       url:true,//合法的url       date:true     }   }, messages:{//提示信息     tel:{       rangelength:"请控制应该在2-10位",       range:"请控制在3,8,包括3和8之间"     }   },
//equalTo 常用语密码的确认输入 rules:{//规则   psssword:{     required:true   },     "confirm-password":{       equalTo:"#password" //对应校验的选择器     } },  messages:{     "confirm-password":{       equalTo:"两次输入的密码不一致"     }   }
5*、valid() 方法

1、检查表单或者某些元素是否有效

alert( $perRegForm.valid()?"填写正确":"填写错误")

2、校验规则

//操作对象:表单元素$('.username').rules();//获取元素的校验规则$('.username').rules('add',{minlength:2,maxlenght:10}); //新增$('.username').rules('remove','minlength maxlenght'); //删除
6*、Validator对象
validate方法返回的是validate对象( 如下:oValidator就是 validate对象 )var oValidator= $('#demoForm').validate({  debug:true});
6、Validator 对象有很多有用的方法
validator.form();//验证表单是否有效,返回true/falsevalidator.element('.username');//验证某个元素是否有效,返回true/falsevalidator.resetForm();//把表单恢复验证前原来的状态validator.showErrors();//针对某个元素显示特定的错误信息validator.numberOfInvalids();//返回无效的元素数量//方法实例oValidator.showErrors({  name:"我是针对指定name的错误信息,hoho"})
//举例子//为class为txt的新增验证规则$.validator.addClassRules({  txt:{    required:true,    minlength:5  }})
1、validate方法配置项

1)ignore 和 depends

var oValidator= $('#demoForm').validate({  debug:true,  //ignore:":hidden",//ignore默认对隐藏的元素不进行校验  ignore:'.name',//对某些元素不进行验证    //depends 隐形规则  rules:{    username:{      required:{        //depends 隐形规则,depends返回ture的时候,再执行required        depends:function(element){          return $("#password").is(":filled"); //密码校验正确后        }      },      //带参数的      minlength:{        param:2,        depends:function(element){          return $("#password").is(":filled"); //密码校验正确后        }      }    },//name end      },//rules end    });

2)groups

//groups 对一组元素的验证,用一个错误提示,//+用errorPlacement控制(把出错信息放在哪里)var oValidator= $('#demoForm').validate({  debug:true,  groups:{    //name 等表示元素name属性    login:"name username password confirm-password"  },  errorPlacement:function(error,element){    //error表示错误信息,element表示出错的元素    error.insertBefore('#info');  }});
3) focusInvalid 提交表单后,未通过验证的表单(第一个或提交之前获得焦点的未通过验证的表单)是否会获得焦点
var oValidator= $('#demoForm').validate({  debug:true,  focusInvalid:true ,//设置true表示 :光标会定位在第一个出错的元素  focusCleanup:true,// 设置true表示:光标定位元素时,会移除该元素的错误提示});

4)class 相关的配置项

如果不配置,会生成如下默认的class,如下:

var oValidator= $('#demoForm').validate({  debug:true,  errorClass:"wrong", //校验没通过生成wrong,默认是error(即:name所在元素+产生的label元素)  validClass:"right"//校验通过生成right,默认是valid(即:name所在元素)});

进阶class

var oValidator= $('#demoForm').validate({  debug:true,  //<label id="name-error" class="wrong success" for="name"></label>  success:'success',//针对label元素  //highlight和unhighlight 针对元素本身  highlight:function(element,errorClass,validClass){    $(element).addClass('validClass').removeClass('validClass');  },  unhighlight:function(element,errorClass,validClass){    $(element).addClass('validClass').removeClass('valivalidClassdClass');  },});
选择器扩展
$('input:blank').length; 
4章、自定义验证方法
  $('#demoForm').validate({    debug:true,    rules:{      username:{        required:true,        postcode:true,//这个是自定义方法,        postcode2:"中国",//带参数的youbian      }    }  });// 加一个验证方法$.validator.addMethod("postcode",function(){  var postcode=/^[0-9]{6}/;  //需求:我们的元素不为空,才需要验证,就需要加上 this.optional(element),没值不验证,直接返回true  return this.optional(element) || (postcode.test(value));},"请填写正确的邮编!")// 信息:请填写正确的中国邮编$.validator.addMethod("postcode2",function(){  var postcode2=/^[0-9]{6}/;  return this.optional(element) || (postcode2.test(value));},$.validator.format( "请填写正确的{0}邮编!"))

additional-methods.js 包含了很多扩展验证方法

//也可以自定义一个jquery.validate.config.js 用来放自定义的验证方法require(['dist/jquery.validate.min'],function(){	if(jQuery.validator != undefined && jQuery.validator.length > 0) {        jQuery.validator.addMethod("isLegalCharacter", function(value, element) {                var regPattern = /^[^\|<>]*$/;                return this.optional(element) || (regPattern.test(value));            }, "有奇怪的字符出现哦~~");                jQuery.validator.addMethod("CN", function(value, element) {              var regPattern = /^[\u4e00-\u9fa5]+$/;//中文验证            return this.optional(element) || regPattern.test(value);          }, "请输入中文");     }});
5章:安全性

客户端安全性:

在数据被输入程序前必须对数据合法性的校验。非法输入问题是最常见的web应用程序安全漏洞。

所有提交的表单数据,都必须验证两次,即提交前在客户端验证,提交后在服务器端再次验证。保证数据的合法性。

服务器端不要相信任何的客户端数据!

标签: #jqueryvalidate