jQuery- 表单验证插件-Validation

▓▓▓▓▓▓ 大致介绍

  jQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求。该插件捆绑了一套有用的验证方法,包括 URL 和电子邮件验证,同时提供了一个用来编写用户自定义方法的 API。所有的捆绑方法默认使用英语作为错误信息,且已翻译成其他 37 种语言。该插件是由 J?rn Zaefferer 编写和维护的,他是 jQuery 团队的一名成员,是 jQuery UI 团队的主要开发人员,是 QUnit 的维护人员。该插件在 2006 年 jQuery 早期的时候就已经开始出现,并一直更新至今。访问 jQuery Validate 官网,下载最新版的 jQuery Validate 插件。

  下载地址:http://static.runoob.com/download/jquery-validation-1.14.0.zip

▓▓▓▓▓▓ 基本语法

   Validate插件需要jQuery,所以我们需要在头部引入jQuery和Validate文件

1     <script type="text/javascript" src="lib/jquery.js"></script>
2     <script type="text/javascript" src="dist/jquery.validate.min.js"></script>

  

  文件引入完毕,先写个简单的表单

 1 <form class="cmxform" id="commentForm" method="get">
 2       <fieldset>
 3         <legend>验证完整的表单</legend>
 4         <p>
 5           <label for="firstname">名字</label>
 6           <input id="firstname" name="firstname" type="text">
 7         </p>
 8         <p>
 9           <label for="lastname">姓氏</label>
10           <input id="lastname" name="lastname" type="text">
11         </p>
12         <p>
13           <label for="username">用户名</label>
14           <input id="username" name="username" type="text">
15         </p>
16         <p>
17           <label for="password">密码</label>
18           <input id="password" name="password" type="password">
19         </p>
20         <p>
21           <label for="confirm_password">验证密码</label>
22           <input id="confirm_password" name="confirm_password" type="password">
23         </p>
24         <p>
25           <label for="email">Email</label>
26           <input id="email" name="email" type="email">
27         </p>
28         <p>
29           <label for="agree">请同意我们的声明</label>
30           <input type="checkbox" class="checkbox" id="agree" name="agree">
31         </p>
32         <p>
33           <input class="submit" type="submit" value="提交">
34         </p>
35       </fieldset>
36     </form>

  然后我们开始写验证表单的代码

  首先我们需要知道那个表单需要验证

1         $(function(){
2
3             $(‘#commentForm‘).validate();
4
5         });

  然后开始写验证的规则,要注意这里选择元素是根据每个标签的name属性选择的,基本语法如下

1             $(‘#commentForm‘).validate({
2                 rules: {
3                     firstname: ‘required‘,//required 表示是必填字段
4                     lastname: {
5                         required: true,
6                         minlength: 3 // 最小长度是3
7                     }
8                 }
9             });

 

  从上面可以看出,如果一个信息只有一个验证要求可以写成一行,比如 firstname;如果有多个验证要写成像 lastname 这种形式;知道了基本的语法

  在看看Validation都提供了那些校验规则

(1)、required:true               必输字段
(2)、remote:"remote-valid.jsp"   使用ajax方法调用remote-valid.jsp验证输入值
(3)、email:true                  必须输入正确格式的电子邮件
(4)、url:true                    必须输入正确格式的网址
(5)、date:true                   必须输入正确格式的日期,日期校验ie6出错,慎用
(6)、dateISO:true                必须输入正确格式的日期(ISO),例如:2009-06-23,1998/01/22 只验证格式,不验证有效性
(7)、number:true                 必须输入合法的数字(负数,小数)
(8)、digits:true                 必须输入整数
(9)、creditcard:true             必须输入合法的信用卡号
(10)、equalTo:"#password"        输入值必须和#password相同
(11)、accept:                    输入拥有合法后缀名的字符串(上传文件的后缀)
(12)、maxlength:5                输入长度最多是5的字符串(汉字算一个字符)
(13)、minlength:10               输入长度最小是10的字符串(汉字算一个字符)
(14)、rangelength:[5,10]         输入长度必须介于 5 和 10 之间的字符串")(汉字算一个字符)
(15)、range:[5,10]               输入值必须介于 5 和 10 之间
(16)、max:5                      输入值不能大于5
(17)、min:10                     输入值不能小于10

  我们将上面的表单验证完善一下,如下

 1         $(function(){
 2
 3             $(‘#commentForm‘).validate({
 4                 rules: {
 5
 6                     firstname: {
 7                         required: true,
 8                         minlength: 5
 9                     },
10
11                     lastname: "required",
12
13                     username: {
14                         required: true,
15                         rangelength: [4,6]
16                     },
17
18                     password: {
19                         required: true,
20                         minlength: 4,
21                         number: true
22                     },
23
24                     confirm_password: {
25                         required: true,
26                         minlength: 3,
27                         equalTo: ‘#password‘
28                     },
29
30                     email: {
31                         required: true,
32                         email: true
33                     },
34
35                 }
36             });
37         });

  效果:

  可以看到,这里的提示默认是英文的不太满意,将提示信息更改成中文有两种方式

  第一种方式:引入语言文件(推荐)

1     <script type="text/javascript" src="dist/localization/messages_zh.js"></script>

  他的提示信息是:

 1     required: "这是必填字段",
 2     remote: "请修正此字段",
 3     email: "请输入有效的电子邮件地址",
 4     url: "请输入有效的网址",
 5     date: "请输入有效的日期",
 6     dateISO: "请输入有效的日期 (YYYY-MM-DD)",
 7     number: "请输入有效的数字",
 8     digits: "只能输入数字",
 9     creditcard: "请输入有效的信用卡号码",
10     equalTo: "你的输入不相同",
11     extension: "请输入有效的后缀",
12     maxlength: $.validator.format("最多可以输入 {0} 个字符"),
13     minlength: $.validator.format("最少要输入 {0} 个字符"),
14     rangelength: $.validator.format("请输入长度在 {0} 到 {1} 之间的字符串"),
15     range: $.validator.format("请输入范围在 {0} 到 {1} 之间的数值"),
16     max: $.validator.format("请输入不大于 {0} 的数值"),
17     min: $.validator.format("请输入不小于 {0} 的数值")

  第二种方式:自己写提示信息

 1             $(‘#commentForm‘).validate({
 2                 rules: {
 3
 4                     firstname: {
 5                         required: true,
 6                         minlength: 5
 7                     },
 8
 9                     lastname: "required",
10
11                     username: {
12                         required: true,
13                         rangelength: [4,6]
14                     },
15
16                     password: {
17                         required: true,
18                         minlength: 4,
19                         number: true
20                     },
21
22                     confirm_password: {
23                         required: true,
24                         minlength: 3,
25                         equalTo: ‘#password‘
26                     },
27
28                     email: {
29                         required: true,
30                         email: true
31                     }
32                 },
33                 messages: {
34
35                          firstname: "请输入您的名字",
36                          lastname: "请输入您的姓氏",
37                          username: {
38                            required: "请输入用户名",
39                            minlength: "用户名必需由两个字母组成"
40                          },
41                          password: {
42                            required: "请输入密码",
43                            minlength: "密码长度不能小于 5 个字母"
44                          },
45                          confirm_password: {
46                            required: "请输入密码",
47                            minlength: "密码长度不能小于 5 个字母",
48                            equalTo: "两次密码输入不一致"
49                          },
50                          email: "请输入一个正确的邮箱",
51                        }
52             });

    

  效果:

  注意:还有一种写验证的方式是在 class 中写,例如

          <input id="firstname" name="firstname" type="text" class="{required:true, minlength:2}">

  但是不推荐这种写法,因为不符合样式与结构分离的要求,并且还需要自己下载一个jquery.metadata.js文件才能够这样写

▓▓▓▓▓▓ 表单提交问题

  可以在表单提交之前执行我们自定义的代码,当我们的自定义代码执行完毕后再提交表单

1             $(‘#commentForm‘).validate({
2
3                 submitHandler: function(){
4                     alert("提交事件成功");
5                     from.submit();
6                 }
7                             });

  可以设置validate的默认值

1         $.validate.setDefaults({
2             submitHandler: function(){
3                 alert("提交成功!");
4                 form.submit();
5             }
6         });

  只验证不提交表单

1         $(function(){
2          $("#commentForm").validate({
3                 debug:true;
4             });
5         });

▓▓▓▓▓▓ 错误提示信息设置

  1、错误信息位置设置

  errorPlacement方法是设置错误信息显示在哪,默认值是在验证元素的后面

1         errorPlacement: function(error, element) {
2             error.appendTo(element.parent());
3         }

  errorClass 是设置错误信息的样式,后跟css类名

  errorElement 是设置用什么标签包住错误信息,默认值是<label>

  errorLabelContainer 是设置将所有的错误信息包在一个地方

  wrapper 是设置用什么标签再把上边的 errorELement 包起来

  例如:

1                 errorPlacement: function(error,element){
2                     $(element).closest(‘form‘).find(‘label[for="‘+ element.attr("id") +‘"]‘).append(error);
3                 },

  是将错误提示信息显示在验证的信息前面

  效果:

  例如:

1                 errorElement: ‘span‘,
2                 errorClass: ‘commentError‘,
3                 errorLabelContainer: $(‘form div.error‘),
4                 wrapper: ‘li‘,

  是将每个提示信息用<span>标签包起来,给他们添加css名为 .commentError 的样式, 并把他们都包再一个class为 error 的div里,在用<li>把每个提示信息包起来  

效果:

  2、错误信息样式设置

  有两种方式可以修改提示信息的样式

  第一种就是采用下载Validation时自带的样式文件

1     <link href="demo/css/screen.css" type="text/css" rel="stylesheet" />

  

  第二种方式就是自己定义样式(当然也可以修改自带的css文件)

  例如添加这样的样式:

 1         input.error { border: 1px solid red; }
 2         label.error {
 3           background:url("demo/images/unchecked.gif") no-repeat 0px 0px;
 4
 5           padding-left: 16px;
 6
 7           padding-bottom: 2px;
 8
 9           font-weight: bold;
10
11           color: #EA5200;
12         }
13         label.checked {
14           background:url("demo/images/checked.gif") no-repeat 0px 0px;
15         }

  效果:

▓▓▓▓▓▓ 验证时的问题

  1、验证的元素通过

  验证的元素通过验证时如果要进行操作,可以使用 success ,他可以接受字符串或者是函数,当接受的是字符串的时候是添加样式

  例如:

                success: function(){
                    alert(1);
                },

  是在要验证的元素通过验证时,弹出1

  例如:

              success: "valid"    

  是将css样式名为 .valid 添加到元素上

  

  2、验证方式

▓▓▓▓▓▓ 自定义校验

   虽然Validation提供了许多验证的方式,但是有些情况还是不够用的,所以如果要添加自定义的校验方式可以使用 addMethod 方法,通常将自定义的方法写在 additional-methods.js 中,然后要引入这个文件

    <script type="text/javascript" src="dist/additional-methods.js"></script>

  写入 additional-methods.js 文件的内容

    例如:

1 $.validator.addMethod("isZipCode", function(value, element) {
2     var tel = /^[0-9]{6}$/;
3     return this.optional(element) || (tel.test(value));
4 }, "请正确填写您的邮政编码");

  只要把这段代码写入 additional-methods.js 文件就可以使用了

  例如:

1                     zipcode: {
2                         required: true,
3                         isZipCode :true
4                     }

  效果:

▓▓▓▓▓▓ radio 和 checkbox、select 的验证

  radio的required表示必须选中一个

  checkbox的required表示必须选中,minlength表示必须选中的最小个数,maxlength表示必须选中的最大个数,rangelength[2,3]表示选中个数区间

  select的required表示选中的value不能为空,minlength表示必须选中的最小个数,maxlength表示必须选中的最大个数,rangelength[2,3]表示选中个数区间

  总结:Validation插件提供了许多的验证,用户可以自己添加自己的验证和提示信息的样式,但是在博客中我并没有提及与ajax相关的内容,因为ajax还没有学习-_-||,如果有什么问题可以和我探讨,如果有不对的地方,欢迎指正

时间: 2024-09-30 17:33:05

jQuery- 表单验证插件-Validation的相关文章

【jQuery基础学习】06 jQuery表单验证插件-Validation

jQuery的基础部分前面都讲完了,那么就看插件了. 关于jQuery表单验证插件-Validation validation特点: 内置验证规则:拥有必填.数字.E-Mail.URL和信用卡号码等19类内置验证规则 自定义验证规则:可以很方便地自定义验证规则 简单强大的验证信息提示:默认了验证信息提示,并提供了自定义覆盖默认提示信息的功能 实时验证:可以通过keyup或者blur事件触发验证,而不仅仅在表单提交的时候验证 使用方法: 引用jQuery库和Validation插件 <script

jQuery 表单验证插件——Validation(基础)

这个插件不错,是用jquery写的.能进行表单验证.我喜欢它的原因是因为 1.他有自带的验证规则 2.你可以自己写验证规则 3.可以通过ajax与后台交互,与后台数据比较.最后返回结果!我在表单中要验证是不是存在这个账号的时候需要与后台进行交互,使用ajax是最好不过的! 使用的方法很简单:我简单说一下“ 1.写jsp页面,js文件 2.引入的这个类库,一个是juquery的类库文件,一个是validation的文件----->http://pan.baidu.com/s/1c04nN5u 3.

jQuery表单验证插件——validation(实现行为和结构分离)

<!DOCTYPE html><meta charset="utf-8"><html><head> <title></title> <style type="text/css"> *{ font-family: Verdana,font-size:96%; } label{width: 10em;float: left;} label.error{ float: none; colo

jQuery表单验证插件----通过name属性来关联字段来验证,改变默认的提示信息,将校验规则写到 js 代码中

一.下载依赖包 网盘下载:https://yunpan.cn/cryvgGGAQ3DSW  访问密码 f224 二. 添加一个另外一个插件jquery.validate.messages_cn.js. 改变默认提示方式. 三.jQuery表单验证插件----通过name属性来关联字段来验证,将校验规则写到 js 代码中. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.

【jquery】Validform,一款不错的 jquery 表单验证插件

关于 Validform 这是一款很不错的 jquery 表单验证插件,它几乎能够满足任何验证需求,仅仅一行代码就能搞定整站的表单验证. $('form').Validform(); 为什么能如此方便?插件的核心思想就是把所有的验证条件及验证提示信息绑定到每个表单元素,让验证代码在执行时只是核对表单下各元素的值是否跟绑定的验证条件相符,这样你可以随便添加或者去掉任一表单元素而不必修改验证代码,从而使仅用一行代码去完成整站的表单验证的梦想成为现实! 功能简介 可以在 input 上直接绑定正则,可

jQuery表单验证插件----利用jquery.metadata.js将校验规则写到控件中

一.下载依赖包 网盘下载:https://yunpan.cn/cryvgGGAQ3DSW  访问密码 f224 二. 添加一个另外一个插件jquery.metadata.js 并把校验规则写在控件里面. 三.需要改写触发校验的方式. $("#commentForm").validate({meta: "validate"}); 四.详细代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transit

JQuery表单验证插件EasyValidator,超级简单易用!

本插件的宗旨是:用户无需写一行JS验证代码,只需在要验证的表单中加入相应的验证属性即可,让验证功能易维护,可扩展,更容易上手. DEMO中已经包含了常用的正则表达式,可以直接复用,为了考虑扩展性,所以针对不同用户特殊需求,自行写正则吧. 顺便AD下刚出炉的小站,欢迎捧场:www.paipaiyou.com EasyValidator实现的功能: 1.提示功能(在表单或者其他标签中加入tip="想提示的文字") 如: <input name="name" tip

(转)强大的JQuery表单验证插件 FormValidator使用介绍

jQuery formValidator表单验证插件是客户端表单验证插件.在做B/S开发的时候,我们经常涉及到很多表单验证,例如新用户注册,填写个人资料,录入一些常规数据等等.在这之前,页面开发者(JavaScript开发者)需要编写大量的JavaScript来进行表单元素的校验,而这些校验在平时开发中不停的重复书写.常见的校验如不能为空,必须满足长度要求,必须为数字,必须为Email等等.一般要判断的表单元素比较多,开发过程就显得枯燥无味--重复的代码不断重复,而且可能还要兼容多种浏览器,更多

jQuery学习之路(8)- 表单验证插件-Validation

▓▓▓▓▓▓ 大致介绍 jQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求.该插件捆绑了一套有用的验证方法,包括 URL 和电子邮件验证,同时提供了一个用来编写用户自定义方法的 API.所有的捆绑方法默认使用英语作为错误信息,且已翻译成其他 37 种语言.该插件是由 Jörn Zaefferer 编写和维护的,他是 jQuery 团队的一名成员,是 jQuery UI 团队的主要开发人员,是 QUnit 的维

实例讲解表单验证插件Validation的应用

jquery.Validation是一款优秀的jquery插件,它能对客户端表单进行验证,并且提供了许多可以定制的属性和方法,良好的扩展性.现在 结合实际情况,我把项目中经常要用到的验证整理成一个实例DEMO,本文就是通过讲解这个实例来理解Validation的应用. 本实例涉及到的验证有: 用户名:长度.字符验证,重复性ajax验证(是否已存在). 密码:长度验证,重复输入密码验证. 邮件:邮件地址验证. 固定电话:中国大陆固定电话号码验证. 手机号:中国大陆手机号码验证. 网址:网站URL地