jquery validate当前最新版本是1.17.0,下载链接是:https://github.com/jquery-validation/jquery-validation/releases/tag/1.17.0

1.基本用法

从字面就知道既然是jquery的插件,首先得引入jquery,然后下载jquery-validate.js后引入。

其次既然是表单校验,首先得有一个表单,即form标签,然后由于浏览器是通过name属性来提交表单数据的,所以需要给校验的控件都加上name属性。

校验的写法有两种,一种是把校验规则写在控件中,另一种是写在js里。

先看第一种

         <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>

required属性表示必填,默认情况下在点击提交按钮的时候会触发表单校验,之后input在失焦、keyup事件的时候都会校验。

我比较推荐的是第二种写法,即把校验规则写在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>
     $("#loginForm").validate({
rules:{
username:"required",
password:"required",
},
messages:{
username:"请输入用户名",
password:"请输入密码",
}
});

这样感觉更直观清晰。

2.内置验证方式

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

required 必填验证元素。

minlength(length) maxlength(length) rangelength(range) 设置最小长度、最大长度和长度范围 [min,max]。

min(value) max(value) range(range) 设置最大值、最小值和值的范围。

email() 验证电子邮箱格式。

url() 验证 URL 格式。

date() 验证日期格式(类似 30/30/2008 的格式,不验证日期准确性只验证格式)。

number() 验证十进制数字(包括小数的)。

digits() 验证整数。

equalTo(other) 验证两个输入框的内容是否相同。修改密码时经常使用。

3.错误信息显示

默认情况在校验失败时会创建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的样式。

4.校验成功的信息显示

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

    $("#loginForm").validate({
rules:{
username:"required",
password:"required",
},
messages:{
username:"请输入用户名",
password:"请输入密码",
},
success: "valid"
});

5.添加自定义校验

使用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为验证失败。

6.使用普通按钮代替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{}
});

7.需要注意的点

有时候会遇到form表单中按钮点击时自动执行表单提交操作的问题,或者点击form中的按钮请求ajax,可是自动在url后拼了一段奇怪的字符串导致请求status为cancel。

原因是没有给button按钮规定 type 属性。

button按钮如果没有指定type属性的话,Internet Explorer 的默认类型是 "button",而其他浏览器中(包括 W3C 规范)的默认值是 "submit"。

还有更详细的内容没有整理,比如validator其他的常用方法,校验方式,radio、checkbox、select的校验等等。

具体参考菜鸟教程:http://www.runoob.com/jquery/jquery-plugin-validate.html

 

简单好用的表单校验插件——jQuery Validate基本使用方法总结的更多相关文章

  1. 表单验证插件jquery.validate的使用方法演示

    jQueryValidate表单验证效果 jquery.validate验证错误信息的样式控制 <!--validate验证插件的基础样式--> input.error{border: 1 ...

  2. jQuery插件 -- 表单验证插件jquery.validate.js, jquery.metadata.js

    原文地址:http://blog.csdn.net/zzq58157383/article/details/7718352   最常使用JavaScript的场合就是表单的验证,而jQuery作为一个 ...

  3. jQuery插件 -- 表单验证插件jquery.validate.js

    最常使用JavaScript的场合就是表单的验证,而jQuery作为一个优秀的JavaScript库,也提供了一个优秀的表单验证插件----Validation.Validation是历史最悠久的jQ ...

  4. 表单验证插件jquery.validate.js

    最常使用JavaScript的场合就是表单的验证,而jQuery作为一个优秀的JavaScript库,也提供了一个优秀的表单验证插件----Validation.Validation是历史最悠久的jQ ...

  5. jq中的表单验证插件------jquery.validate

    今天我们来说一下表单验证,有人说我们在进行表单验证的时候使用正则来验证是非常麻烦的,现在我来给大家介绍一下表单验证的插件:jquery.validate.min.js 它是与jquery一起结合用来使 ...

  6. jQuery表单验证插件——jquery.validate.js

    官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation 一.导入js库 <script src="../j ...

  7. 【JAVAWEB学习笔记】28_jqueryAjax:json数据结构、jquery的ajax操作和表单校验插件

    Ajax-jqueryAjax 今天内容: 1.json数据结构(重点) 2.jquery的ajax操作(重点) 3.jquery的插件使用   一.json数据结构 1.什么是json JSON(J ...

  8. 表单校验插件(bootstrap-validator)

    表单校验插件(bootstrap-validator) 参考文档 http://blog.csdn.net/nazhidao/article/details/51542508 http://blog. ...

  9. 2.12 学习总结 之 表单校验插件validate

    一.说在前面 昨天 学习了ajax的相关知识 今天 学习表单校验插件validate, 并使用ajax 自定义校验规则 二.validate 插件 1.网络上有许多成熟的插件共使用者参考,插件就是将j ...

随机推荐

  1. Linux yum操作时出现Error: xz compression not available

    yum升级PHP版本的时候出现这个问题 由于CentOS6的系统安装了epel-release-latest-7.noarch.rpm 导致在使用yum命令时出现Error: xz compressi ...

  2. java流类,快速统计出字符次数+++

    总结:学会给一个合适的命名,不要总是abc..虽然简单,但是不容易看懂,和方便去理解 package com.aini; import java.io.File; import java.io.Fil ...

  3. window.open()打开新窗口被拦截

    window.open( url )是常用的打开新页面的方法,一般都没有问题,但是如果在ajax回调方法里面使用就会被浏览器拦截,因为在浏览器安全机制中,页面弹窗必须是由用户触发的才是安全弹窗,比如说 ...

  4. C#三层架构详细解剖

    深入浅出C#三层架构(转) 本文用一个示例来介绍如何建设一个三层架构的项目,并说明项目中各个文件所处的层次与作用.写本文的目的,不是为了说明自己的这个方法有多对,而是希望给那些初学三层架构却不知从何入 ...

  5. 关于Oracle to_char()函数中的IW,WW 周别显示

    1)ww的算法为每年1月1日为第一周开始,date+6为每一周结尾 例如20050101为第一周的第一天,而第一周的最后一天为20050101+6=20050107 公式 每周第一天 :date + ...

  6. Py修行路 python基础 (十七)property 静态方法 类方法

    一.property 属性 特性 (装饰器是可调用对象,被装饰对象也是可调用对象)   1.在类内函数属性上添加一个@property,就会对函数属性进行伪装. import math class C ...

  7. 简单的HTTP服务实现

    最近因工作需要为外部公司提供http服务,由于内容比较少,同时为了方便安装,就想着自己写一个简单的服务器. 思路是将一个Http服务器嵌入一个Windows Service程序中,于是在网上找了很多资 ...

  8. java常见的几种调用机制(同步调用,异步调用,回调)

    1.同步调用 同步调用是最基本的调用方式,对象b中的方法直接调用对象a的方法,这个时候程序会等待对象a的方法执行完返回结果之后才会继续往下走. 代码如下: public class A {public ...

  9. Java 查询数据后进行递归操作

    java的递归方法记录: private List<Map<String, Object>> generateOrgMapToTree(List<Map<Strin ...

  10. DDD学习笔录——提炼问题域之知识提炼与协作的基本原则

    1.通过通用语言达成共识 通用语言,已经强调过好多遍了,在DDD再怎么重视都不为过,后面可能还会讲. 知识提炼的输出以及共识的构建就是常见的通用语言(UL). 当与业务相关人员和主题专家进行建模时,每 ...