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异步调用页面后台方法&amp;#8207;(asp.net)
Mar 01 Javascript
jquery中通过父级查找进行定位示例
Jun 28 Javascript
使用jquery实现IE下按backspace相当于返回操作
Mar 18 Javascript
javascript实现图片延迟加载方法汇总(三种方法)
Aug 27 Javascript
jQuery实现简单隔行变色的方法
Feb 20 Javascript
浅谈javascript的call()、apply()、bind()的用法
Feb 21 Javascript
Javascript实现找不同色块的游戏
Jul 17 Javascript
浅谈在Vue-cli里基于axios封装复用请求
Nov 06 Javascript
js使用Promise实现简单的Ajax缓存
Nov 14 Javascript
JavaScript遍历DOM元素的常见方式示例
Feb 16 Javascript
Vue 自定义标签的src属性不能使用相对路径的解决
Sep 17 Javascript
js屏蔽F12审查元素,禁止修改页面代码等实现代码
Oct 02 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 高手之路(一)
2006/10/09 PHP
file_get_contents(&quot;php://input&quot;, &quot;r&quot;)实例介绍
2013/07/01 PHP
thinkphp的静态缓存用法分析
2014/11/29 PHP
PHPExcel简单读取excel文件示例
2016/05/26 PHP
safari下载文件自动加了html后缀问题
2018/11/09 PHP
永不消失的title提示代码
2007/02/15 Javascript
[原创]保存的js无法执行的解决办法
2007/02/25 Javascript
js同时按下两个方向键
2007/12/01 Javascript
jQuery结合Json提交数据到Webservice,并接收从Webservice返回的Json数据
2011/02/18 Javascript
当自定义数据属性为json格式字符串时jQuery的data api问题探讨
2013/02/18 Javascript
Javascript实现滑块滑动改变值的实现代码
2013/04/12 Javascript
JavaScript变量声明详解
2014/11/27 Javascript
jquery表单对象属性过滤选择器实例分析
2015/05/18 Javascript
怎么通过onclick事件获取js函数返回值(代码少)
2015/07/28 Javascript
折叠菜单及选择器的运用
2017/02/03 Javascript
js评分组件使用详解
2017/06/06 Javascript
jQuery 利用ztree实现树形表格的实例代码
2017/09/27 jQuery
webpack构建的详细流程探底
2018/01/08 Javascript
Vue2.5通过json文件读取数据的方法
2018/02/27 Javascript
nodeJs的安装与npm全局环境变量的配置详解
2020/01/06 NodeJs
修改Vue打包后的默认文件名操作
2020/08/12 Javascript
[01:02:03]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS VG
2014/05/26 DOTA
python实现数通设备端口监控示例
2014/04/02 Python
详解Golang 与python中的字符串反转
2017/07/21 Python
python ddt数据驱动最简实例代码
2019/02/22 Python
python实现图片二值化及灰度处理方式
2019/12/07 Python
如何基于python实现归一化处理
2020/01/20 Python
基于Python的OCR实现示例
2020/04/03 Python
python+adb+monkey实现Rom稳定性测试详解
2020/04/23 Python
TensorFlow实现模型断点训练,checkpoint模型载入方式
2020/05/26 Python
几款好用的python工具库(小结)
2020/10/20 Python
Python学习之time模块的基本使用
2021/01/17 Python
法国二手MacBook销售网站:Okamac
2019/03/18 全球购物
工作失职检讨书范文
2014/01/16 职场文书
银行工作检查书范文
2014/01/31 职场文书
社区志愿服务活动感想
2015/08/07 职场文书