Jquery 表单验证类介绍与实例


Posted in Javascript onJune 09, 2013

[html]

<form action="" method="post" id="formValidate"> 
数值:<input name="" type="text" validate="number" /><span></span><br/> 
浮点型:<input name="" type="text" validate="decimal" /><span></span><br/> 
英文:<input name="" type="text" validate="english" /><span></span><br/> 
大写英文:<input name="" type="text" validate="upper_english" /><span></span><br/> 
小写英文:<input name="" type="text" validate="lower_english" /><span></span><br/> 
邮件格式:<input name="" type="text" validate="email" /><span></span><br/> 
是否包含中文:<input name="" type="text" validate="chinese" /><span></span><br/> 
URL:<input name="" type="text" validate="url" /><span></span><br/> 
电话号码:<input name="" type="text" validate="phone" /><span></span><br/> 
IP地址:<input name="" type="text" validate="ip" /><span></span><br/> 
金额:<input name="" type="text" validate="money" /><span></span><br/> 
数值或者英文或者_:<input name="" type="text" validate="number_letter" /><span></span><br/> 
邮政编码:<input name="" type="text" validate="zip_code" /><span></span><br/> 
可用账号:<input name="" type="text" validate="account" /><span></span><br/> 
QQ:<input name="" type="text" validate="qq" /><span></span><br/> 
身份证:<input name="" type="text" validate="card" /><span></span><br/> 
数值 允许为空:<input name="" type="text" validate="number" empty='yes' /><span></span><br/> 
数值 长度 1-3:<input name="" type="text" validate="number" min=1 max=3 /><span></span><br/> 
数值 长度 1-3 允许为空:<input name="" type="text" validate="number" min=1 max=3 empty='yes'/><span></span><br/> 
<input name="" type="submit" /> 
</form> 
<script src="jquery.js" type="text/javascript"></script> 
<script src="formValidate.js" type="text/javascript"></script> 
<script type="text/javascript"> 
var formValidate = new formValidate(); 
formValidate.init({}); 
</script>

[javascript]
/* 
* 通用JS验证类 
* 使用方法: 
* var formValidate = new formValidate(); 
* formValidate.init({}); 
* 注意: 
* <form action="" method="post" id="formValidate"> 
* id为formValidate 
* 
* <input name="" type="text" validate="zip_code" empty="yes" min=10 max=10 /><span></span> 
* validate="zip_code" 验证是否是邮政编码 
* empty="yes" 验证是否允许为空 
* min=10 最小长度 
* max=10 最大长度 
* <span></span> 显示提示内容 
*/ 
var formValidate = function () { var _this = this; 
this.options = { 
number : {reg : /^[0-9]+$/, str : '必须为数字'}, 
decimal : {reg : /^[-]{0,1}(\d+)[\.]+(\d+)$/ , str : '必须为DECIMAL格式'}, 
english : {reg : /^[A-Za-z]+$/, str : '必须为英文字母'}, 
upper_english : {reg : /^[A-Z]+$/, str : '必须为大写英文字母'}, 
lower_english : {reg : /^[a-z]+$/, str : '必须为小写英文字母'}, 
email : {reg : /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/, str : 'Email格式不正确'}, 
chinese : {reg : /[\u4E00-\u9FA5\uf900-\ufa2d]/ig, str : '必须含有中文'}, 
url : {reg : /^[a-zA-z]+:\/\/[^s]*/, str : 'URL格式不正确'}, 
phone : {reg : /^[1][3][0-9]{9}$/ , str : '电话号码格式不正确'}, 
ip : {reg : /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/ , str : 'IP地址格式不正确'}, 
money : {reg : /^[0-9]+[\.][0-9]{0,3}$/ , str : '金额格式不正确'}, 
number_letter : {reg : /^[0-9a-zA-Z\_]+$/ , str : '只允许输入英文字母、数字、_'}, 
zip_code : {reg : /^[a-zA-Z0-9 ]{3,12}$/ , str : '邮政编码格式不正确'}, 
account : {reg : /^[a-zA-Z][a-zA-Z0-9_]{4,15}$/ , str : '账号名不合法,允许5-16字符,字母下划线和数字'}, 
qq : {reg : /[1-9][0-9]{4,}/ , str : 'QQ账号不正确'}, 
card : {reg : /^(\d{6})(18|19|20)?(\d{2})([01]\d)([0123]\d)(\d{3})(\d|X)?$/ , str : '身份证号码不正确'}, 
}; 
//初始化 绑定表单 选项 
this.init = function (options) { 
this.setOptions(options); 
this.checkForm(); 
}; 
//设置参数 
this.setOptions = function (options) { 
for (var key in options) { 
if (key in this.options) { 
this.options[key] = options[key]; 
} 
} 
}; 
//检测表单 包括是否为空,最大值 最小值,正则验证 
this.checkForm = function () { 
$("#formValidate").submit(function () { 
var formChind = $("#formValidate").children(); 
var testResult = true; 
formChind.each(function (i) { 
var child = formChind.eq(i); 
var value = child.val(); 
var len = value.length; 
var childSpan = child.next(); 
//属性中是否为空的情况 
if (child.attr('empty')) { 
if (child.attr('empty') == 'yes' && value == '') { 
if (childSpan) { 
childSpan.html(''); 
} 
return; 
} 
} 
//属性中min 和 max 最大和最小长度 
var min = null; 
var max = null; 
if (child.attr('min')) min = child.attr('min'); 
if (child.attr('max')) max = child.attr('max'); 
if (min && max) { 
if (len < min || len > max) { 
if (childSpan) { 
childSpan.html(''); 
childSpan.html(' 字符串长度在' + min + '与' + max + '之间'); 
testResult = false; 
return; 
} 
} 
} else if (min) { 
if (len < min) { 
if (childSpan) { 
childSpan.html(''); 
childSpan.html(' 字符串长度应大于' + min); 
testResult = false; 
return; 
} 
} 
} else if (max) { 
if (len > max) { 
if (childSpan) { 
childSpan.html(''); 
childSpan.html(' 字符串长度应小于' + max); 
testResult = false; 
return; 
} 
} 
} 
//正则校验 
if (child.attr('validate')) { 
var type = child.attr('validate'); 
var result = _this.check(value, type); 
if (childSpan) { 
childSpan.html(''); 
if (result != true) { 
childSpan.html(' ' + result); 
testResult = false; 
} 
} 
} 
}); 
return testResult; 
}); 
}; 
//检测单个正则选项 
this.check = function (value, type) { 
if (this.options[type]) { 
var val = this.options[type]['reg']; 
if (!val.test(value)) { 
return this.options[type]['str']; 
} 
return true; 
} else { 
return '找不到该表单验证正则项'; 
} 
}; 

}
Javascript 相关文章推荐
新浪微博字数统计 textarea字数统计实现代码
Aug 28 Javascript
JavaScript中函数声明优先于变量声明的实例分析
Mar 01 Javascript
jQuery 菜单随滚条改为以定位方式(固定要浏览器顶部)
May 24 Javascript
setTimeout函数兼容各主流浏览器运行执行效果实例
Jun 13 Javascript
JSP跨iframe如何传递参数实现代码
Sep 21 Javascript
JavaScript eval() 函数介绍及应用示例
Jul 29 Javascript
JavaScript中的console.assert()函数介绍
Dec 29 Javascript
详解使用vue-admin-template的优化历程
May 20 Javascript
Element UI框架中巧用树选择器的实现
Dec 12 Javascript
生产制造追溯系统之在线打印功能
Jun 03 Javascript
微信小程序点击view动态添加样式过程解析
Jan 21 Javascript
js验证密码强度解析
Mar 18 Javascript
js调用后台servlet方法实例
Jun 09 #Javascript
Jquery实现列表(隔行换色,全选,鼠标滑过当前行)效果实例
Jun 09 #Javascript
Jquery加载时从后台读取数据绑定到dropdownList实例
Jun 09 #Javascript
ScrollDown的基本操作示例
Jun 09 #Javascript
给Flash加一个超链接(推荐使用透明层)兼容主流浏览器
Jun 09 #Javascript
一个简单的弹性返回顶部JS代码实现介绍
Jun 09 #Javascript
select、radio表单回显功能实现避免使用jquery载入赋值
Jun 08 #Javascript
You might like
PHP+XML 制作简单的留言本 图文教程
2009/11/02 PHP
php下关于Cannot use a scalar value as an array的解决办法
2010/08/08 PHP
php 判断是否是中文/英文/数字示例代码
2013/09/30 PHP
php命名空间学习详解
2014/02/27 PHP
JavaScript创建命名空间的5种写法
2014/06/24 PHP
php使用COPY函数更新配置文件的方法
2015/06/18 PHP
PHP的Socket通信之UDP通信实例
2015/07/02 PHP
js自动闭合html标签(自动补全html标记)
2012/10/04 Javascript
jquery组件使用中遇到的问题整理及解决
2014/02/21 Javascript
jquery获取当前元素索引值用法实例
2015/06/10 Javascript
详解AngularJS中的作用域
2015/06/17 Javascript
深入理解JavaScript编程中的原型概念
2015/06/25 Javascript
微信小程序 Video API实例详解
2016/10/02 Javascript
基于JavaScript实现右键菜单和拖拽功能
2016/11/28 Javascript
js实现楼层导航功能
2017/02/23 Javascript
Vue实现带进度条的文件拖动上传功能
2018/02/23 Javascript
jQuery插件实现弹性运动完整示例
2018/07/07 jQuery
JavaScript实现异步图像上传功能
2018/07/12 Javascript
Vue中computed和watch有哪些区别
2020/12/19 Vue.js
Python的Twisted框架中使用Deferred对象来管理回调函数
2016/05/25 Python
解决pycharm py文件运行后停止按钮变成了灰色的问题
2018/11/29 Python
tensorflow实现测试时读取任意指定的check point的网络参数
2020/01/21 Python
CSS3 画基本图形,圆形、椭圆形、三角形等
2016/09/20 HTML / CSS
培训主管的岗位职责
2013/11/23 职场文书
施工安全协议书
2013/12/11 职场文书
十八届三中全会宣传方案
2014/02/21 职场文书
七夕活动策划方案
2014/08/16 职场文书
学习礼仪心得体会
2014/09/01 职场文书
北京离婚协议书范文2014
2014/09/29 职场文书
公积金接收函格式
2015/01/30 职场文书
2016教师党员学习心得体会
2016/01/21 职场文书
写给医护人员的一封感谢信
2019/09/16 职场文书
各种货币符号快捷输入
2022/02/17 杂记
《吸血鬼:避世 血猎》官宣4.27发售 系列首款大逃杀
2022/04/03 其他游戏
JS setTimeout与setInterval的区别
2022/04/20 Javascript
SQL Server中的游标介绍
2022/05/20 SQL Server