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数组过滤筛选方法grep()简介
Jun 06 Javascript
javascript结合ajax读取txt文件内容
Dec 05 Javascript
jQuery中insertBefore()方法用法实例
Jan 08 Javascript
JavaScript实现算术平方根算法-代码超简单
Sep 11 Javascript
javascript高级编程之函数表达式 递归和闭包函数
Nov 29 Javascript
原生Javascript和jQuery做轮播图简单例子
Oct 11 Javascript
JavaScript中如何使用cookie实现记住密码功能及cookie相关函数介绍
Nov 10 Javascript
bootstrap模态框实现拖拽效果
Dec 14 Javascript
js实现炫酷的左右轮播图
Jan 18 Javascript
获取IE浏览器Cookie信息的方法
Jan 23 Javascript
Vue组件实现触底判断
Jun 26 Javascript
基于vue的video播放器的实现示例
Feb 19 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
PHP生成静态页面详解
2006/11/19 PHP
easyui的tabs update正确用法分享
2014/03/21 PHP
PHP模板引擎Smarty的缓存使用总结
2014/04/24 PHP
ThinkPHP框架设计及扩展详解
2014/11/25 PHP
php使用pear_smtp发送邮件
2016/04/15 PHP
javascript中利用数组实现的循环队列代码
2010/01/24 Javascript
Javascript 中 null、NaN和undefined的区别总结
2013/04/10 Javascript
Thinkphp模板没有解析直接原样输出的解决方法
2014/10/31 Javascript
检测一个函数是否是JavaScript原生函数的小技巧
2015/03/13 Javascript
js完美解决IE6不支持position:fixed的bug
2015/04/24 Javascript
js验证身份证号有效性并提示对应信息
2015/10/19 Javascript
Javascript生成全局唯一标识符(GUID,UUID)的方法
2016/02/27 Javascript
AngularJS入门教程之数据绑定用法示例
2016/11/01 Javascript
javascript设计模式之中介者模式学习笔记
2017/02/15 Javascript
jQuery实现多张图片上传预览(不经过后端处理)
2017/04/29 jQuery
详解Vue中watch对象内属性的方法
2019/02/01 Javascript
详解关于Vuex的action传入多个参数的问题
2019/02/22 Javascript
element-ui多文件上传的实现示例
2019/04/10 Javascript
微信小程序云开发使用方法新手初体验
2019/05/16 Javascript
mpvue网易云短信接口实现小程序短信登录的示例代码
2020/04/03 Javascript
javascript实现获取中文汉字拼音首字母
2020/05/19 Javascript
如何在 Vue 表单中处理图片
2021/01/26 Vue.js
[49:58]完美世界DOTA2联赛PWL S3 Magma vs DLG 第一场 12.18
2020/12/19 DOTA
numpy.transpose对三维数组的转置方法
2018/04/17 Python
python爬虫开发之urllib模块详细使用方法与实例全解
2020/03/09 Python
Python中Selenium模块的使用详解
2020/10/09 Python
python opencv角点检测连线功能的实现代码
2020/11/24 Python
css3 给页面加个半圆形导航条主要利用旋转和倾斜样式
2014/02/10 HTML / CSS
NARS化妆品官方商店:美国彩妆品牌
2017/08/26 全球购物
Skyscanner台湾:全球知名的旅行比价引擎
2018/07/01 全球购物
毕业生毕业总结的自我评价范文
2013/11/02 职场文书
开办饭店创业计划书
2013/12/28 职场文书
小学生倡议书范文
2014/05/13 职场文书
行政执法队伍作风整顿个人剖析材料
2014/10/11 职场文书
酒店收银员岗位职责
2015/04/07 职场文书
Python获取字典中某个key的value
2022/04/13 Python