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 控制弹出窗口
Apr 10 Javascript
JavaScript 异步调用框架 (Part 3 - 代码实现)
Aug 04 Javascript
深入理解JavaScript系列(6):S.O.L.I.D五大原则之单一职责SRP
Jan 15 Javascript
javascript 事件处理、鼠标拖动效果实现方法详解
May 11 Javascript
JS操作Cookies的小例子
Oct 15 Javascript
JavaScript中的lastIndexOf()方法使用详解
Jun 06 Javascript
基于daterangepicker日历插件使用参数注意的问题
Aug 10 Javascript
基于JavaScript实现新增内容滚动播放效果附完整代码
Aug 24 Javascript
Node.js dgram模块实现UDP通信示例代码
Sep 26 Javascript
Vue数据双向绑定原理及简单实现方法
May 18 Javascript
js+canvas实现简单扫雷小游戏
Jan 22 Javascript
创建nuxt.js项目流程图解
Mar 13 Javascript
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
dede3.1分页文字采集过滤规则详说(图文教程)
2007/04/03 PHP
php+flash+jQuery多图片上传源码分享
2020/07/27 PHP
让插入到 innerHTML 中的 script 跑起来的实现代码
2006/07/01 Javascript
jQuery 白痴级入门教程
2009/11/11 Javascript
javascript 自动填写表单的实现方法
2010/04/09 Javascript
js实现单行文本向上滚动效果实例代码
2013/11/28 Javascript
刷新页面的几种方法小结(JS,ASP.NET)
2014/01/07 Javascript
通过遮罩层实现浮层DIV登录的js代码
2014/02/07 Javascript
jQuery中复合属性选择器用法实例
2014/12/31 Javascript
jquery+ajax实现直接提交表单实例分析
2016/06/17 Javascript
js字符串引用的两种方式(必看)
2016/09/18 Javascript
Vue2组件tree实现无限级树形菜单
2017/03/29 Javascript
vue实现点击展开点击收起效果
2018/04/27 Javascript
vue图片上传本地预览组件使用详解
2019/02/20 Javascript
记录vue项目中遇到的一点小问题
2019/05/14 Javascript
vue element-ui之怎么封装一个自己的组件的详解
2019/05/20 Javascript
jQuery实现鼠标拖动图片功能
2021/03/04 jQuery
python 解析html之BeautifulSoup
2009/07/07 Python
Python 如何访问外围作用域中的变量
2016/09/11 Python
flask中使用蓝图将路由分开写在不同文件实例解析
2018/01/19 Python
如何使用VSCode愉快的写Python于调试配置步骤
2018/04/06 Python
在numpy矩阵中令小于0的元素改为0的实例
2019/01/26 Python
Python爬取数据保存为Json格式的代码示例
2019/04/09 Python
python函数与方法的区别总结
2019/06/23 Python
pytorch获取模型某一层参数名及参数值方式
2019/12/30 Python
如何基于Python + requests实现发送HTTP请求
2020/01/13 Python
scrapy框架携带cookie访问淘宝购物车功能的实现代码
2020/07/07 Python
简单了解python关键字global nonlocal区别
2020/09/21 Python
京东国际站:JOYBUY
2017/11/23 全球购物
怎样比较两个类型为String的字符串
2016/08/17 面试题
外语系毕业生自荐信范文
2013/12/16 职场文书
21岁生日感言
2014/02/27 职场文书
小学生开学第一课活动方案
2014/03/27 职场文书
大学生简历求职信
2014/06/24 职场文书
Vue Element UI自定义描述列表组件
2021/05/18 Vue.js
python获取字符串中的email
2022/03/31 Python