jquery插件制作 表单验证实现代码


Posted in Javascript onAugust 17, 2012

先下页面代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title></title> 
<script type="text/javascript" src="Scripts/jquery-1.8.0.min.js"></script> 
<script type="text/javascript" src="Scripts/jquery.formCheck.js"></script> 
<script type="text/javascript"> 
$(document).ready(function () { 
$('.formToCheck').formCheck(); 
}); 
</script> 
<style type="text/css"> 
form 
{ 
width: 300px; 
} 
label 
{ 
position: absolute; 
} 
input:not(.submit), textarea 
{ 
margin-left: 100px; 
width: 200px; 
} 
.submit 
{ 
margin-left: 100px; 
} 
.error 
{ 
border:1px solid red; 
} 
</style> 
</head> 
<body> 
<form class="formToCheck" id="formToCheck" method="get" action="#"> 
<fieldset> 
<legend>a simple form</legend> 
<p> 
<label for="fname"> 
* first name</label> 
<input id="fname" class="required" name="fname" /> 
</p> 
<p> 
<label for="lname"> 
last name</label> 
<input id="lname" name="lname" /> 
</p> 
<p> 
<label for="email"> 
* email</label> 
<input id="email" name="email" class="required email" /> 
</p> 
<p> 
<label for="comment"> 
* comment</label> 
<input id="comment" name="comment" class="required" /> 
</p> 
<p> 
<label for="email"> 
* email</label> 
<input id="submit" type="submit" class="submit" value="submit" /> 
</p> 
</fieldset> 
</form> 
</body> 
</html>

我们定义了一个form,定义了几个输入框,请注意class属性,有的是class="required",说明该项是必填项;class="required email"说明该项是必填项,并且需要符合email格式。没有定义class的输入框不做验证。下面来看插件代码:
(function ($) { 
$.fn.formCheck = function (options) { 
var defaults = { 
errorClass: 'error' 
}; 
var options = $.extend(defaults, options); 
return this.each(function () { 
var form = $(this); 
//如果不是from表单,直接返回不做任何操作 
if (!form.is('form')) { 
return; 
} 
//只有当form表单提交的时候,我们才做验证 
form.submit(function () { 
var errorFlag = false; 
//获取表单里面所有的input控件,逐一进行处理 
$(':input', this).each(function (index, item) { 
//获取当前对象 
var element = $(item); 
//移除样式 
element.removeClass(options.errorClass); 
//必填项验证,value值不能为空 
if (element.hasClass('required') && element.val().length == 0) { 
errorFlag = true; 
element.addClass(options.errorClass); 
} 
//数字验证 
if (element.hasClass('number') && element.val().length > 0 && !/^\d+$/.test(element.val())) { 
errorFlag = true; 
element.addClass(options.errorClass); 
} 
//email验证 
if (element.hasClass('email') && element.val().length > 0 







&& !/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/.test(element.val())) { 
errorFlag = true; 
element.addClass(options.errorClass); 
} 
//验证数字长度 
var num = this.className.match(/min(\d+)/i); 
if (num && element.val().length < num[1]) { 
errorFlag = true; 
element.addClass(options.errorClass); 
} 
}); 
return !errorFlag; 
}); 
}); 
}; 
})(jQuery);

demo下载地址:jQuery.plugin.formcheck
今天的课程就到此为止了。
Javascript 相关文章推荐
javascript 设置文本框中焦点的位置
Nov 20 Javascript
JQuery 操作select标签实现代码
May 14 Javascript
基于jquery的web页面日期格式化插件
Nov 15 Javascript
如何编写高质量JS代码
Dec 28 Javascript
js贪吃蛇网页版游戏特效代码分享(挑战十关)
Aug 24 Javascript
jQuery基于扩展简单实现倒计时功能的方法
May 14 Javascript
浅谈AngularJs 双向绑定原理(数据绑定机制)
Dec 07 Javascript
vscode配置vue下的es6规范自动格式化详解
Mar 20 Javascript
vue webpack重写cookie路径的方法
Jul 10 Javascript
Javascript Dom元素获取和添加详解
Sep 24 Javascript
JS控制下拉列表左右选择实例代码
May 08 Javascript
jQuery三组基本动画与自定义动画操作实例总结
May 09 jQuery
jquery插件制作 图片走廊 gallery
Aug 17 #Javascript
jquery插件制作教程 txtHover
Aug 17 #Javascript
IFrame跨域高度自适应实现代码
Aug 16 #Javascript
JSONP 跨域共享信息
Aug 16 #Javascript
js自执行函数的几种不同写法的比较
Aug 16 #Javascript
js三种排序算法分享
Aug 16 #Javascript
jQuery点击后一组图片左右滑动的实现代码
Aug 16 #Javascript
You might like
解析Linux下Varnish缓存的配置优化
2013/06/20 PHP
php脚本运行时的超时机制详解
2016/02/17 PHP
实例讲解PHP中使用命名空间
2019/01/27 PHP
PHP+jQuery实现双击修改table表格功能示例
2019/02/21 PHP
JavaScript 使用技巧精萃(.net html
2009/04/25 Javascript
jValidate 基于jQuery的表单验证插件
2009/12/12 Javascript
一个简单的jQuery插件制作 学习过程及实例
2010/04/25 Javascript
基于Jquery的简单图片切换效果
2011/01/06 Javascript
JavaScript中通过prototype属性共享属性和方法的技巧实例
2015/03/13 Javascript
jQuery实现form表单基于ajax无刷新提交方法详解
2015/12/08 Javascript
JavaScript SweetAlert插件实现超酷消息警告框
2016/01/28 Javascript
原生js封装二级城市下拉列表的实现代码
2016/06/16 Javascript
微信公众号支付H5调用支付解析
2016/11/04 Javascript
使用 jQuery 实现表单验证功能
2017/07/05 jQuery
JS实现点击链接切换显示隐藏内容的方法
2017/10/19 Javascript
详解使用webpack+electron+reactJs开发windows桌面应用
2019/02/01 Javascript
JavaScript 截取字符串代码实例
2019/09/05 Javascript
小程序实现投票进度条
2019/11/20 Javascript
ES2020让代码更优美的运算符 (?.) (??)
2021/01/04 Javascript
浅析Python的web.py框架中url的设定方法
2016/07/11 Python
python安装PIL模块时Unable to find vcvarsall.bat错误的解决方法
2016/09/19 Python
Python开发微信公众平台的方法详解【基于weixin-knife】
2017/07/08 Python
Python如何抓取天猫商品详细信息及交易记录
2018/02/23 Python
Python pandas.DataFrame调整列顺序及修改index名的方法
2019/06/21 Python
python3.x+pyqt5实现主窗口状态栏里(嵌入)显示进度条功能
2019/07/04 Python
Python 实现大整数乘法算法的示例代码
2019/09/17 Python
Python中url标签使用知识点总结
2020/01/16 Python
Python3变量与基本数据类型用法实例分析
2020/02/14 Python
浅谈Python中的模块
2020/06/10 Python
秋季婚礼证婚词
2014/01/11 职场文书
药剂专业自荐信范文
2014/04/16 职场文书
2014年全国法制宣传日宣传活动方案
2014/11/02 职场文书
勤俭节约主题班会
2015/08/13 职场文书
CSS3通过var()和calc()函数实现动画特效
2021/03/30 HTML / CSS
零基础学java之带返回值的方法的定义和调用
2022/04/10 Java/Android
人工智能深度学习OpenAI baselines的使用方法
2022/05/20 Python