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实现改变TEXTAREA滚动条和按钮的颜色,以及怎样让滚动条变得扁平
Apr 20 Javascript
javascript英文日期(有时间)选择器
May 02 Javascript
jquery仿百度经验滑动切换浏览效果
Apr 14 Javascript
Js与Jq获取浏览器和对象值的方法
Mar 18 Javascript
在React中如何优雅的处理事件响应详解
Jul 24 Javascript
深入理解Puppeteer的入门教程和实践
Mar 05 Javascript
通过实例讲解JS如何防抖动
Jun 15 Javascript
layui 选择列表,打勾,点击确定返回数据的例子
Sep 02 Javascript
vue 解决form表单提交但不跳转页面的问题
Oct 30 Javascript
Jquery高级应用Deferred对象原理及使用实例
May 28 jQuery
适用于 Vue 的播放器组件Vue-Video-Player操作
Nov 16 Javascript
关于vue-router-link选择样式设置
Apr 30 Vue.js
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
thinkphp5引入公共部分header、footer的方法详解
2018/09/14 PHP
laravel orm 关联条件查询代码
2019/10/21 PHP
JavaScript实现弹出子窗口并传值给父窗口
2014/12/18 Javascript
js实现鼠标感应向下滑动隐藏菜单的方法
2015/02/20 Javascript
jquery中attr和prop的区别分析
2015/03/16 Javascript
jQuery实现html元素拖拽
2015/07/21 Javascript
JS实现的Select三级下拉菜单代码
2015/08/20 Javascript
为何JS操作的href都是javascript:void(0);呢
2015/11/12 Javascript
javascript移动开发中touch触摸事件详解
2016/03/18 Javascript
jquery实现图片切换代码
2016/10/13 Javascript
jQuery实现CheckBox全选、全不选功能
2017/01/11 Javascript
js中获取键盘按下键值event.keyCode、event.charCode和event.which的兼容性详解
2017/03/15 Javascript
Vue响应式原理详解
2017/04/18 Javascript
基于layui数据表格以及传数据的方式
2018/08/19 Javascript
JavaScript遍历数组的三种方法map、forEach与filter实例详解
2019/02/27 Javascript
nodejs文件夹深层复制功能
2019/09/03 NodeJs
Python中实现常量(Const)功能
2015/01/28 Python
详解Python中的__new__()方法的使用
2015/04/09 Python
python逐行读写txt文件的实例讲解
2018/04/03 Python
基于python的多进程共享变量正确打开方式
2018/04/28 Python
python树的同构学习笔记
2019/09/14 Python
pygame实现打字游戏
2021/02/19 Python
Python如何访问字符串中的值
2020/02/09 Python
python rolling regression. 使用 Python 实现滚动回归操作
2020/06/08 Python
PyCharm 2020.2下配置Anaconda环境的方法步骤
2020/09/23 Python
介绍CSS3使用技巧5个
2009/04/02 HTML / CSS
html5仿支付宝密码框的实现代码
2017/09/06 HTML / CSS
公司营业员的工作总结自我评价
2013/10/05 职场文书
仓库管理专业个人自我评价范文
2013/11/11 职场文书
人力资源经理的岗位职责
2014/03/02 职场文书
新党章心得体会
2014/09/04 职场文书
关于九一八事变的演讲稿2014
2014/09/17 职场文书
个人学习党的群众路线教育实践活动心得体会
2014/11/05 职场文书
网吧员工管理制度
2015/08/05 职场文书
职工食堂管理制度
2015/08/06 职场文书
Python多个MP4合成视频的实现方法
2021/07/16 Python