jQuery.Validate 使用笔记(jQuery Validation范例 )


Posted in Javascript onJune 25, 2010

验证操作类formValidatorClass.js

/** 
* @author ming 
*/ 
$(document).ready(function(){ 
/**//* 设置默认属性 */ 
$.validator.setDefaults({ 
submitHandler: function(form) { 
form.submit(); 
} 
}); 
// 字符验证 
jQuery.validator.addMethod("stringCheck", function(value, element) { 
return this.optional(element) || /^[\u0391-\uFFE5\w]+$/.test(value); 
}, "只能包括中文字、英文字母、数字和下划线"); 
// 中文字两个字节 
jQuery.validator.addMethod("byteRangeLength", function(value, element, param) { 
var length = value.length; 
for(var i = 0; i < value.length; i++){ 
if(value.charCodeAt(i) > 127){ 
length++; 
} 
} 
return this.optional(element) || ( length >= param[0] && length <= param[1] ); 
}, "请确保输入的值在3-15个字节之间(一个中文字算2个字节)"); 
// 身份证号码验证 
jQuery.validator.addMethod("isIdCardNo", function(value, element) { 
return this.optional(element) || isIdCardNo(value); 
}, "请正确输入您的身份证号码"); 
// 手机号码验证 
jQuery.validator.addMethod("isMobile", function(value, element) { 
var length = value.length; 
var mobile = /^(((13[0-9]{1})|(15[0-9]{1}))+\d{8})$/; 
return this.optional(element) || (length == 11 && mobile.test(value)); 
}, "请正确填写您的手机号码"); 
// 电话号码验证 
jQuery.validator.addMethod("isTel", function(value, element) { 
var tel = /^\d{3,4}-?\d{7,9}$/; //电话号码格式010-12345678 
return this.optional(element) || (tel.test(value)); 
}, "请正确填写您的电话号码"); 
// 联系电话(手机/电话皆可)验证 
jQuery.validator.addMethod("isPhone", function(value,element) { 
var length = value.length; 
var mobile = /^(((13[0-9]{1})|(15[0-9]{1}))+\d{8})$/; 
var tel = /^\d{3,4}-?\d{7,9}$/; 
return this.optional(element) || (tel.test(value) || mobile.test(value)); 
}, "请正确填写您的联系电话"); 
// 邮政编码验证 
jQuery.validator.addMethod("isZipCode", function(value, element) { 
var tel = /^[0-9]{6}$/; 
return this.optional(element) || (tel.test(value)); 
}, "请正确填写您的邮政编码"); 
//开始验证 
$('#submitForm').validate({ 
/**//* 设置验证规则 */ 
rules: { 
username: { 
required:true, 
stringCheck:true, 
byteRangeLength:[3,15] 
}, 
email:{ 
required:true, 
email:true 
}, 
phone:{ 
required:true, 
isPhone:true 
}, 
address:{ 
required:true, 
stringCheck:true, 
byteRangeLength:[3,100] 
} 
}, 
/**//* 设置错误信息 */ 
messages: { 
username: { 
required: "请填写用户名", 
stringCheck: "用户名只能包括中文字、英文字母、数字和下划线", 
byteRangeLength: "用户名必须在3-15个字符之间(一个中文字算2个字符)" 
}, 
email:{ 
required: "请输入一个Email地址", 
email: "请输入一个有效的Email地址" 
}, 
phone:{ 
required: "请输入您的联系电话", 
isPhone: "请输入一个有效的联系电话" 
}, 
address:{ 
required: "请输入您的联系地址", 
stringCheck: "请正确输入您的联系地址", 
byteRangeLength: "请详实您的联系地址以便于我们联系您" 
} 
}, 
/**//* 设置验证触发事件 */ 
focusInvalid: false, 
onkeyup: false, 
/**//* 设置错误信息提示DOM */ 
errorPlacement: function(error, element) { 
error.appendTo( element.parent()); 
}, 
}); 
});

测试页index.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gbk" /> 
<title>jQuery验证</title> 
<script src="lib/jquery/jquery-1.3.2.min.js" ></script> 
<script type="text/javascript" src="lib/jquery/jquery.validate.js" mce_src="lib/jquery/jquery.validate.js"></script> 
<script type="text/javascript" src="lib/jquery/messages_cn.js"></script> 
<script type="text/javascript" src="lib/jquery/formValidatorClass.js"></script> 
<style type="text/css"> 
* {}{ 
font-family: Verdana; 
font-size: 96%; 
} 
label {}{ 
width: 10em; 
float: left; 
} 
label.error {}{ 
float: none; 
color: red; 
padding-left: .5em; 
vertical-align: top; 
} 
p {}{ 
clear: both; 
} 
.submit {}{ 
margin-left: 12em; 
} 
em {}{ 
font-weight: bold; 
padding-right: 1em; 
vertical-align: top; 
} 
</style> 
</head> 
<body> 
<form class="submitForm" id="submitForm" method="get" action=""> 
<fieldset> 
<legend>表单验证</legend> 
<p> 
<label for="username">用户名</label> 
<em>*</em><input id="userName" name="username" size="25" /> 
</p> 
<p> 
<label for="email">E-Mail</label> 
<em>*</em><input id="email" name="email" size="25" /> 
</p> 
<p> 
<label for="phone">联系电话</label> 
<em>*</em><input id="phone" name="phone" size="25" value="" /> 
</p> 
<p> 
<label for="address">地址</label> 
<em>*</em><input id="address" name="address" size="22"> 
</p> 
<input class="submit" type="submit" value="提交"/> 
</p> 
</fieldset> 
</form> 
</body> 
</html>

校验规则参数
格式为; name:{rule1, rule2 ....} name 要使用input 标签的name,之前,错误理解为 ID 了;
提示信息使用 alert 输出:
errorPlacement: function (error, element) { 
if (error[0].textContent){ 
Alert(error[0].textContext); 
} 
else { 
Alert(error[0].innerText); 
} 
}
Javascript 相关文章推荐
理解Javascript闭包
Nov 01 Javascript
jquery 快速回到页首的方法
Dec 05 Javascript
jQuery表格列宽可拖拽改变且兼容firfox
Sep 03 Javascript
IE下支持文本框和密码框placeholder效果的JQuery插件分享
Jan 31 Javascript
被遗忘的javascript的slice() 方法
Apr 20 Javascript
JavaScript中标识符提升问题
Jun 11 Javascript
JS实现鼠标滑过折叠与展开菜单效果代码
Sep 06 Javascript
纯js实现手风琴效果
Apr 17 Javascript
AngularJS实现页面定时刷新
Mar 14 Javascript
JS实现左边列表移到到右边列表功能
Mar 28 Javascript
ES6函数和数组用法实例分析
May 23 Javascript
JavaScript圣杯布局与双飞翼布局实现案例详解
Aug 05 Javascript
基于jquery的checkbox下拉框插件代码
Jun 25 #Javascript
jquery keypress,keyup,onpropertychange键盘事件
Jun 25 #Javascript
javascript中字符串替换函数replace()方法与c# 、vb 替换有一点不同
Jun 25 #Javascript
javascript面向对象编程(一) 实例代码
Jun 25 #Javascript
asp.net+jquery滚动滚动条加载数据的下拉控件
Jun 25 #Javascript
jQuery对象和DOM对象使用说明
Jun 25 #Javascript
safari,opera嵌入iframe页面cookie读取问题解决方法
Jun 23 #Javascript
You might like
法压式咖啡之制作法
2021/03/03 冲泡冲煮
PHP去除数组中重复的元素并按键名排序函数
2008/08/18 PHP
PHP超级全局变量数组小结
2012/10/04 PHP
php数组索引与键值操作技巧实例分析
2015/06/24 PHP
yii2缓存Caching基本用法示例
2016/07/18 PHP
PHP区块查询实现方法分析
2018/05/12 PHP
PHP利用递归函数实现无限级分类的方法
2019/03/22 PHP
php使用json-schema模块实现json校验示例
2019/09/28 PHP
js Array对象的扩展函数代码
2013/04/24 Javascript
js数组的操作指南
2014/12/28 Javascript
JS for循环中i++ 和 ++i的区别介绍
2016/07/20 Javascript
使用JS 插件qrcode.js生成二维码功能
2017/02/20 Javascript
详解自定义ajax支持跨域组件封装
2018/02/08 Javascript
小程序实现五星点评效果
2018/11/03 Javascript
vue中的v-if和v-show的区别详解
2019/09/01 Javascript
Vue简单封装axios之解决post请求后端接收不到参数问题
2020/02/16 Javascript
浅析VUE防抖与节流
2020/11/24 Vue.js
编写Python脚本使得web页面上的代码高亮显示
2015/04/24 Python
实例讲解Python的函数闭包使用中应注意的问题
2016/06/20 Python
Python之os操作方法(详解)
2017/06/15 Python
Python图片裁剪实例代码(如头像裁剪)
2017/06/21 Python
Python实现发送QQ邮件的封装
2017/07/14 Python
pandas使用get_dummies进行one-hot编码的方法
2018/07/10 Python
python 模拟创建seafile 目录操作示例
2019/09/26 Python
英国最大的电脑零售连锁店集团:PC World
2016/10/10 全球购物
写好求职信第一句话的技巧
2013/10/26 职场文书
优秀幼教自荐信
2014/02/03 职场文书
优秀员工获奖感言
2014/03/01 职场文书
寄语学生的话
2014/04/10 职场文书
廉洁自律承诺书2015
2015/01/22 职场文书
2015年司法所工作总结
2015/04/27 职场文书
迎新生欢迎词2015
2015/07/16 职场文书
Python实现天气查询软件
2021/06/07 Python
Spring Cloud 中@FeignClient注解中的contextId属性详解
2021/09/25 Java/Android
使用MybatisPlus打印sql语句
2022/04/22 SQL Server
详解Python中的for循环
2022/04/30 Python