jquery validate学习心得

据说,javascript最初的由来就是为了解决表单的验证问题,当然现在的js已经能够用来做各种各样炫酷的效果,不过表单验证一直以来都是js很重要的一个用途(在博客园第一篇博客,不知道说些什么开头~~)。

最近刚刚接触到了一个简答易用的表单验证插件jquery validation,下面来分享下这几天收集到的一些资料与学习心得。

一个优秀的表单验证插件:

     作为受众多web开发者追捧的validation,它理应拥有如下各种优点:

1.内置验证规则:拥有必填,url,数字,email等19类验证规则;

2.可方便的自定义验证规则;

3.有默认的验证信息提示,并可通过自定义提示信息覆盖默认信息;

4.实时验证:可通过keyup或blur事件触发验证,而非仅在表单提交时

默认校验规则:

序号 规则 描述
1 required:true 必须输入的字段。
2 remote:"check.php" 使用 ajax 方法调用 check.php 验证输入值。
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: 必须输入合法的信用卡号。
10 equalTo:"#field" 输入值必须和 #field 相同。
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。
名称 返回类型 描述
validate(options) Validator 验证所选的 FORM。
valid() Boolean 检查是否验证通过。
rules() Options 返回元素的验证规则。
rules("add",rules) Options 增加验证规则。
rules("remove",rules) Options 删除验证规则。
removeAttrs(attributes) Options 删除特殊属性并且返回它们。
自定义选择器
:blank Validator 没有值的筛选器。
:filled Array <Element> 有值的筛选器。
:unchecked Array <Element> 没选择的元素的筛选器。
实用工具
jQuery.format(template,argument,argumentN...) String 用参数代替模板中的 {n}。
名称 返回类型 描述
form() Boolean 验证 form 返回成功还是失败。
element(element) Boolean 验证单个元素是成功还是失败。
resetForm() undefined 把前面验证的 FORM 恢复到验证前原来的状态。
showErrors(errors) undefined 显示特定的错误信息。
Validator 函数
setDefaults(defaults) undefined 改变默认的设置。
addMethod(name,method,message) undefined 添加一个新的验证方法。必须包括一个独一无二的名字,一个 JAVASCRIPT 的方法和一个默认的信息。
addClassRules(name,rules) undefined 增加组合验证类型,在一个类里面用多种验证方法时比较有用。
addClassRules(rules) undefined 增加组合验证类型,在一个类里面用多种验证方法时比较有用。这个是同时加多个验证方法。
描述 代码
debug:进行调试模式(表单不提交)。
$(".selector").validate
({
	debug:true
})
把调试设置为默认。
$.validator.setDefaults({
	debug:true
})
submitHandler:通过验证后运行的函数,里面要加上表单提交的函数,否则表单不会提交。
$(".selector").validate({
	submitHandler:function(form) {
		$(form).ajaxSubmit();
	}
})
ignore:对某些元素不进行验证。
$("#myform").validate({
	ignore:".ignore"
})
rules:自定义规则,key:value 的形式,key 是要验证的元素,value 可以是字符串或对象。
$(".selector").validate({
	rules:{
		name:"required",
		email:{
			required:true,
			email:true
		}
	}
})
messages:自定义的提示信息,key:value 的形式,key 是要验证的元素,value 可以是字符串或函数。
$(".selector").validate({
	rules:{
		name:"required",
		email:{
			required:true,
			email:true
		}
	},
	messages:{
		name:"Name不能为空",
		email:{
			required:"E-mail不能为空",
			email:"E-mail地址不正确"
		}
	}
})
groups:对一组元素的验证,用一个错误提示,用 errorPlacement 控制把出错信息放在哪里。
$("#myform").validate({
	groups:{
		username:"fname
		lname"
	},
	errorPlacement:function(error,element) {
		if (element.attr("name") == "fname" || element.attr("name") == "lname")
			error.insertAfter("#lastname");
		else
			error.insertAfter(element);
	},
   debug:true
})
Onubmit:类型 Boolean,默认 true,指定是否提交时验证。
$(".selector").validate({
	onsubmit:false
})
onfocusout:类型 Boolean,默认 true,指定是否在获取焦点时验证。
$(".selector").validate({
	onfocusout:false
})
onkeyup:类型 Boolean,默认 true,指定是否在敲击键盘时验证。
$(".selector").validate({
   onkeyup:false
})
onclick:类型 Boolean,默认 true,指定是否在鼠标点击时验证(一般验证 checkbox、radiobox)。
$(".selector").validate({
   onclick:false
})
focusInvalid:类型 Boolean,默认 true。提交表单后,未通过验证的表单(第一个或提交之前获得焦点的未通过验证的表单)会获得焦点。
$(".selector").validate({
   focusInvalid:false
})
focusCleanup:类型 Boolean,默认 false。当未通过验证的元素获得焦点时,移除错误提示(避免和 focusInvalid 一起使用)。
$(".selector").validate({
   focusCleanup:true
})
errorClass:类型 String,默认 "error"。指定错误提示的 css 类名,可以自定义错误提示的样式。
$(".selector").validate({
	errorClass:"invalid"
})
errorElement:类型 String,默认 "label"。指定使用什么标签标记错误。
$(".selector").validate
   errorElement:"em"
})
wrapper:类型 String,指定使用什么标签再把上边的 errorELement 包起来。
$(".selector").validate({
   wrapper:"li"
})
errorLabelContainer:类型 Selector,把错误信息统一放在一个容器里面。
$("#myform").validate({
	errorLabelContainer:"#messageBox",
	wrapper:"li",
	submitHandler:function() {
		alert("Submitted!")
	}
})
showErrors:跟一个函数,可以显示总共有多少个未通过验证的元素。
$(".selector").validate({
	showErrors:function(errorMap,errorList) {
        $("#summary").html("Your form contains " + this.numberOfInvalids() + " errors,see details below.");
		this.defaultShowErrors();
	}
})
errorPlacement:跟一个函数,可以自定义错误放到哪里。
$("#myform").validate({
	rrorPlacement:function(error,element) {
		error.appendTo(element.parent("td").next("td"));
   },
   debug:true
})
success:要验证的元素通过验证后的动作,如果跟一个字符串,会当作一个 css 类,也可跟一个函数。
$("#myform").validate({
	success:"valid",
        submitHandler:function() {
			alert("Submitted!")
		}
})

以下是实际应用:

首先第一步,地球人都知道——要导入相应的js库;

<script src="../js/jquery.js" type="text/javascript"></script>
<script src="../js/jquery.validate.js" type="text/javascript"></script>

另外,一般我们还会引入另一个js文件,validate_expand.js,具体看下列源代码截图:注:使用之前有必要检查下正则表达式,如手机号验证的表达式为:mobile = /(^(13|14|15|18)\d{9}$)/;   这显然是不全面的,现在已经有170号段的了,所以要改成/(^(13|14|15|17|18)\d{9}$)/,否则可能会出现错误。

然后就可以开始正式引用了,如下所示

 1 $().ready(function() {
 2  $("#signupForm").validate({  //验证必须是针对form,否则无效;
 3   onfocusout:function(element) { $(element).valid();},/验证触发方式
 4             onkeyup:function(element){
 5                 $(element).valid();
 6             },
 7       //验证规则
 8         rules: {
 9     email: {
10     required: true,
11     email: true
12    },
13    password: {
14     required: true,
15     minlength: 6
16    },
17    confirm_password: {
18     required: true,
19     minlength: 6,
20     equalTo: "#password"
21    }
22   },
23       //提示信息
24         messages: {
25    email: {
26     required: "请输入Email地址",
27     email: "请输入正确的email地址"
28    },
29    password: {
30     required: "请输入密码",
31     minlength: jQuery.format("密码不能小于{0}个字 符")
32    },
33    confirm_password: {
34     required: "请输入确认密码",
35     minlength: "确认密码不能小于5个字符",
36     equalTo: "两次输入密码不一致不一致"
37    }
38   },
39   errorPlacement: function(error, element) {
40  //内容
41   },
42   success:function(label){
43   //内容
44  }
45     });
46 });

可以看出,我们通过validate可以方便的进行验证,如添加自定义验证及提示信息等。

另外,我们可以将错误提示信息显示在其他位置,如在方法内部”error.appendTo(element.parent())“,或者在成功时调用一些方法。

好了,暂时就总结这么多吧,以后有新的心得会及时分享上来,如有什么错误也请大家不要留情 ,狠狠拍吧

时间: 2024-10-10 11:29:53

jquery validate学习心得的相关文章

JQuery.Validate学习笔记

JQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求.该插件捆绑了一套有用的验证方法,包括 URL 和电子邮件验证,同时提供了一个用来编写用户自定义方法的 API. 使用JQuery Validate之前首先引入以下两个文件:jquery-1.11.1.js 和 jquery.validate.js.下载链接:https://jqueryvalidation.org. 菜鸟教程提供的 1.14.0 版本下载地址

jQuery【学习心得】简介和选择器第一天

之前我也自学过jquery但是就是没有毅力,老是三天打鱼两天撒网,所以学习的不怎么好,现在我每天都会写下我今天学习的心得,给自己加油! 第一天: 1. 区别一下js中的windowonload=function(){}和jq中的$(document).ready(function(){});的区 别:前者必须要等网页中全部的内容(包括图片)加载完毕才能触发而后者需要主要dom对象加载完就可以,速度比较快.前者只能执行一次,后者可以重复执行 N次,后者有简写($(function(){});后者没

jquery【学习心得】常用方法中的注意点

.end()和.parent()的区别,前者不单单只是能够寻找到父节点也可以找到相邻节点 .toggleClass()是指指定样式和默认样式之间的转换. .offset()是获取相对于视口的绝对位置 .position()是相对于父元素的偏移位置 .scrollTop()获取垂直滚动条的高度 .clone()复制节点:值得注意的是此方法中如果没有传参或者传的是false,则只是复制的内容,并没有复制事件的处理,若是传的是ture则内容和事件处理都复制了 删除节点的几种方法: .remove() 

jquery 插件 validate 学习

jquery是十分方便的对于现在来说. 首先应该明白一个问题: <p> <label  for="password">Password</label> <input id="password" name="password" maxlength="24"/> </p> 请问<input >的父元素是谁? 当然,如果看不出来,我们可以使用chrome浏览器一

Jquery的DataTable插件 AJAX 服务器分页的的学习心得(java版)

首先得先引入对应的js 1.jquery.min.js  首先导入 2. File:        jquery.dataTables.min.js Version:     1.9.4     这是我使用的版本 这是  jsp 页面 关键的table  代码 <table id="fuck" class="table table-bordered data-table"> <thead> <tr> <span style=

表单验证插件jquery.validate.js学习

一.前言 在做web应用的时候,数据验证是非常重要的,一个不小心就产生bug,而bug多了显得个人开发能力都有问题,这个时候如果能有一个用着得心应手的验证插件,开发效率也会大大的提高.就好像牛魔王告诉孙悟空,你缺少一件兵器,于是他就抢来了棒子,用着那叫一个爽.三首蛟告诉杨戬,你手里缺少一件兵器,于是他把三首蛟变成了三尖两刃枪里,再配合一个忠心而又嗅觉灵敏的狗狗,办起事来真是事半功倍.今天我也学学这款比较流行的表单验证插件,给自己搞一个好使的兵器. 插件官网:https://jqueryvalid

jquery validate 插件使用心得

做网页表单经常要用到数据校验的功能.JavaScript校验是一种比较常用的手段.最近写页面写得比较多,发现了一个比较好用的js校验框架--jQuery.validate.她是一款基于jquery的校验工具,基本可以满足我们大多数的页面校验需要,且支持ajax校验.支持各种自定义的扩展,包括自定义校验规则,自定义错误显示的方式等. 通过一段时间的使用,感觉用起来还是非常简单的.这里做一下使用方法的简单介绍,而后会介绍一个我自己扩展的一种错误提示方式(感觉默认的信息提示的方式比较一般实在不怎么好看

【JQ成长笔记】jQuery Validate验证插件

validate是一款很好的jq插件,提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求.该插件捆绑了一套有用的验证方法,包括 URL 和电子邮件验证,同时提供了一个用来编写用户自定义方法的 API.所有的捆绑方法默认使用英语作为错误信息,且已翻译成其他 37 种语言. 需要引入的js 1 <script type="text/javascript" src="../../scripts/jquery-1.3.1.js&qu

利用jquery.validate异步验证用户名是否存在

经过上百次的试验试和搜索,终于把jquery.validate的各种功能用法了解清楚,网上关于jquery.validate的AJAX表单验证比较少,特别是对rules里面的remote提得比较简单,使得学习起来比较难,下面发布一下我个人的用法: HTML头部引用: <script type="text/javascript" src="../js/jquery-1.3.2.min.js"></script><script type=&