• query-validate 插件


    jquery-validate 插件

    基本用法
    1. 页面中引入js依赖,因为validate是依赖jquery的需要先引入jquery.官网链接:
      官网链接
    2. 表单校验,首先得有一个表单,即form标签,然后由于浏览器是通过name属性来提交表单数据的,所以需要给校验的控件都加上name属性.
    • 写法一
      required属性表示必填,默认情况下在点击提交按钮的时候会触发表单校验,之后input在失焦、keyup事件的时候都会校验。

      <form id="loginForm" name='f' action='/auth/login' method='POST'>
          <div class="el-form-item">
              <input type="text" name='username' id="username" placeholder="用户名" class="el-input" required>
          </div>
          <div class="el-form-item">
              <input type="password" name='password' id="password" placeholder="密码" class="el-input" required>
          </div>
          <div class="login-btn">
              <button type="submit" class="el-button">登录</button>
          </div>
      </form>
      
    • 写法二(推荐)
      使用普通html,通过把校验规则写在js里,这样对象的形式可以规则和提示信息一一对应起来。

      • html
      <form id="loginForm" name='f' action='/auth/login' method='POST'>
          <div class="el-form-item">
              <input type="text" name='username' id="username" placeholder="用户名" class="el-input">
          </div>
          <div class="el-form-item">
              <input type="password" name='password' id="password" placeholder="密码" class="el-input">
          </div>
          <div class="login-btn">
              <button type="submit" class="el-button">登录</button>
          </div>
      </form>
      
      • js
      $("#loginForm").validate({
          rules:{
              username:"required",
              password:"required",
          },
          messages:{
              username:"请输入您的用户名",
              password:"请输入您的密码",
          }
      });
      
    验证方式

    rules里每个控件可以给多个验证方式,常用的有:

    1. required 必填验证元素。
    2. minlength(length) maxlength(length)
    3. rangelength(range)设置最小长度、最大长度和长度范围 [min,max]。
    4. min(value) max(value) range(range) 设置最大值、最小值和值的范围。
    5. email() 验证电子邮箱格式。
    6. url() 验证 URL 格式。
    7. date() 验证日期格式(类似 30/30/2008 的格式,不验证日期准确性只验证格式)。
    8. number() 验证十进制数字(包括小数的)。
    9. digits() 验证整数。
    10. equalTo(other) 验证两个输入框的内容是否相同。修改密码时经常使用。
    错误信息显示

    默认情况在校验失败时会创建calss为error的label标签存放错误提示信息,并放在当前校验控件的后面,即error.appendTo(element.parent());
    如果要自定义显示位置的话可以使用 errorPlacement:callBack修改

       errorPlacement: function(error, element) {  
           //error为校验失败创建的信息提示标签,element为当前校验控件  
       }
    
    • errorClass 可以指定标签类名。
    • errorElement 可以指定标签类型。
    • errorLabelContainer 可以把错题信息统一放在一个容器里。
    • wrapper 用什么标签再把上边的 errorELement 包起来。
    • 关于样式的修改,校验失败当前校验控件也会添加error类名,所以可以定义input.error和label.error的样式。
    校验成功的信息显示

    校验成功可以设置success:"className"来设置样式,也可以在success后接一个函数为校验成功后的操作。

         $("#loginForm").validate({
            rules:{
                username:"required",
                password:"required",
            },
            messages:{
                username:"请输入您的用户名",
                password:"请输入您的密码",
            }
             success: "valid"
        });
    
    添加自定义校验

    使用addMethod(name,method,message)添加自定义校验,三个参数分别为:自定义校验的名称、方法、提示信息。
    在 additional-methods.js 文件中存在一些扩展的自定义校验方法,如notEqualTo(不同于)等。

       jQuery.validator.addMethod( "notEqualTo", function( value, element, param ) {
           return this.optional(element) || !$.validator.methods.equalTo.call( this, value, element, param );
       }, "Please enter a different value, values must not be the same." );
    
    • method的三个参数分别为: 校验控件中的value值、校验控件元素、调用此校验方法中的参数(如equalTo("#newPassword"),param为“#newPassword”)。
    • this.optional(element)用于表单控件的值不为空时才触发验证。当表单的值为空时,this.optional(element) == true,即可以不填但是格式不能错的场景。
    • method返回值true为验证成功,false为验证失败。
    使用普通按钮代替submit校验

    很多时候我们提交表单并不是用的form形式,而是ajax,这时候就不能用submit来触发了。
    validator()会返回一个对象,这个对象下的form()方法可以验证 form 返回成功还是失败。

    function validform(){
            return $("#changePasswordForm").validate({
                rules:{
                    oldPassword:"required",
                    newPassword:{
                        required:true,
                        notEqualTo:"#oldPassword"
                    },
                    newPassword2:{
                        required:true,
                        equalTo:"#newPassword"
                    },
                },
                messages:{
                    oldPassword:"原密码不能为空",
                    newPassword:{
                        required:"新密码不能为空",
                        notEqualTo:"新密码不能与原密码重复"
                    },
                    newPassword2:{
                        required:"请确认新密码",
                        equalTo:"两次密码输入不一致"
                    },
                }
            });
        }
        //注册表单验证
        $(validform());
    
        //点击按钮事件
        $("#submitBtn").click(function(){
            if (validform().form()) {
                //请求ajax
                ajaxSubmit();
            }else{}
        });
    
    需要注意的点
    • 有时候会遇到form表单中按钮点击时自动执行表单提交操作的问题,或者点击form中的按钮请求ajax,可是自动在url后拼了一段奇怪的字符串导致请求status为cancel。
    • 原因是没有给button按钮规定 type 属性。
    • button按钮如果没有指定type属性的话,Internet Explorer 的默认类型是 "button",而其他浏览器中(包括 W3C 规范)的默认值是 "submit"。

    菜鸟教程链接

    原文链接

  • 相关阅读:
    【JZOJ4616】二进制的世界
    【JZOJ4665】数列
    【JZOJ4811】排队
    2017.08.19【NOIP提高组】模拟赛B组 经济编码
    浅谈匈牙利算法
    2017.08.18【NOIP提高组】模拟赛B组 恭介的法则(rule)
    2017.08.18【NOIP提高组】模拟赛B组 沙耶的玩偶(doll)
    2017.08.15【NOIP提高组】模拟赛B组 单足跳
    2017.08.15【NOIP提高组】模拟赛B组 生日聚餐
    2017.08.12【NOIP提高组】模拟赛B组 巴比伦
  • 原文地址:https://www.cnblogs.com/404code/p/11654718.html
Copyright © 2020-2023  润新知