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 相关文章推荐
jquery中dom操作和事件的实例学习 下拉框应用
Dec 01 Javascript
js简单实现删除记录时的提示效果
Dec 05 Javascript
javascript图片滑动效果实现
Jan 28 Javascript
Node.js中JavaScript操作MySQL的常用方法整理
Mar 01 Javascript
AngularJS框架中的双向数据绑定机制详解【减少需要重复的开发代码量】
Jan 19 Javascript
设置cookie指定时间失效(实例代码)
May 28 Javascript
vue中路由参数传递可能会遇到的坑
Dec 07 Javascript
Vue filter格式化时间戳时间成标准日期格式的方法
Sep 16 Javascript
百度小程序之间的页面通信过程详解
Jul 18 Javascript
详解Vue中CSS样式穿透问题
Sep 12 Javascript
Vue之Mixins(混入)的使用方法
Sep 24 Javascript
解决vue自定义指令导致的内存泄漏问题
Aug 04 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
php列出一个目录下的所有文件的代码
2012/10/09 PHP
php 如何获取数组第一个值
2013/08/06 PHP
PHP实现用户登录的案例代码
2018/05/10 PHP
PHP中的self关键字详解
2019/06/23 PHP
为超链接加上disabled后的故事
2010/12/10 Javascript
jquery学习总结(超级详细)
2014/09/04 Javascript
使表格的标题列可左右拉伸jquery插件封装
2014/11/24 Javascript
jQuery中parent()方法用法实例
2015/01/07 Javascript
jQuery时间插件jquery.clock.js用法实例(5个示例)
2016/01/14 Javascript
Angularjs---项目搭建图文教程
2016/07/08 Javascript
vue.js学习笔记之绑定style样式和class列表
2016/10/31 Javascript
如何解决hover在ie6中的兼容性问题
2016/12/15 Javascript
简单谈谈CommonsChunkPlugin抽取公共模块
2017/12/31 Javascript
原生JS+HTML5实现跟随鼠标一起流动的粒子动画效果
2018/05/03 Javascript
Webstorm2016使用技巧(SVN插件使用)
2018/10/29 Javascript
layui 对弹窗 form表单赋值的实现方法
2019/09/04 Javascript
解决vue cli4升级sass-loader(v8)后报错问题
2020/07/30 Javascript
Taro小程序自定义顶部导航栏功能的实现
2020/12/17 Javascript
[51:36]EG vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.24
2018/08/25 DOTA
Python实现生成简单的Makefile文件代码示例
2015/03/10 Python
python numpy 部分排序 寻找最大的前几个数的方法
2018/06/27 Python
Python unittest 简单实现参数化的方法
2018/11/30 Python
用python的turtle模块实现给女票画个小心心
2019/11/23 Python
Python基于gevent实现高并发代码实例
2020/05/15 Python
Django 解决新建表删除后无法重新创建等问题
2020/05/21 Python
Django框架安装及项目创建过程解析
2020/09/14 Python
Pycharm在指定目录下生成文件和删除文件的实现
2020/12/28 Python
财务人员个人求职信范文
2013/12/04 职场文书
师范生的个人求职信范文
2014/01/04 职场文书
大学生实习思想汇报
2014/01/12 职场文书
学生自我鉴定格式及范文
2014/09/16 职场文书
学生检讨书如何写
2014/10/30 职场文书
2014年卫生院工作总结
2014/12/03 职场文书
解除租房协议书
2014/12/03 职场文书
2015年煤矿工作总结
2015/04/28 职场文书
浅谈MySQL表空间回收的正确姿势
2021/10/05 MySQL