FormValidate 表单验证功能代码更新并提供下载


Posted in Javascript onAugust 23, 2008

FormValidate 功能更新

下载:
http://xiazai.3water.com/jslib/FormValidate.rar

更多用法,可参才:

http://jobj.googlecode.com/svn/trunk/FormValidate/demo.html

加入方法:
extend,
加入验证模式 4,同3,但是当验证不通过时,立即停止向下检查。在模式3下,如果发生错误,会把错误记录,并向下检查,模式4就不向下检查了。

用法:

<input type="text" name="name[0]" id="name[0]" ruleTpl="0" />
<input type="text" name="birthday[0]" id="birthday[0]" ruleTpl="1" />
。。。。。
。。。。。
var checkRule = [
{name:"name[0]", required:true, min:2, max:3, msg:"请输入姓名!长度必须大于2,小于3"},
{name:"birthday[0]",required:false, type:"Date", msg:"出生日期是可选项,如果输入,请输入正确的日期"},
{name:"email[0]", required:false, type:"Email", msg:"邮件是可选项,如果输入,请输入正确的邮件地址"},
{name:"scoreA[0]", required:true, type:"Num", min:0, max:100, msg:"语文分数是必须项,必须大于0小于100"},
{name:"scoreB[0]", required:true, type:"Num", min:0, max:100, msg:"数学分数是必须项,必须大于0小于100"},
{name:"scoreC[0]", required:true, type:"Num", min:0, max:100, msg:"英语分数是必须项,必须大于0小于100"}
];

JObj.plugin("FormValidate");
var va = JObj.Plugin.FormValidate;

va.extend(document.forms[0],"ruleTpl",checkRule);
return va.validate(document.forms[0],checkRule,4);

解释:
为啥要这样写?
如果不动态添加表单项,可以把 va.extend这一句删除。但是动态添加表单项的话。。。新增的表单项无法指定。
这样写,就是跟据 ruleTpl 所指定的为验证规则。这个 ruleTpl可以是任何字符串(不是它的值),比如,如果把 ruleTpl换成 ttt,那么就要写成:
va.extend(document.forms[0],'ttt',checkRule)
ruleTpl 是做为表单项的一个自定义 attribute 存在的,其值必须是 checkRule 的一个下标,如果这个下标不存,则默认不检查这一项。否则就把选定的 checkRule的元素复制一遍,达到动态添加验证规则的目的。

在添加这个功能的时候,遇到几个有趣的问题,下面我说说:

1,地址引用,请不要运行,说出下面代码中,变量 a 的值。

var a = [{name:1}];
var tmp = a.push(a[a.length - 1]);
a[tmp - 1].name = 2;
如果你说:a = [{name:1},{name:2}],那你就大错特错了,真实值是:
a = [{name:2},{name:2}];

原因很简单,因为 push的是一个对象,对象在JS里是地址引用,所以, a[tmp - 1].name = 2 的时候,其实是把 a[0] 的值改变了。

下面这一段就很简单了,值引用,不会发生上面的情况。

var a = [1,2,3];
a.push(a[a.length - 1]);
alert(a);
a[a.length - 1] = 4;
alert(a);
2,FF下动态删除表单项。
如果动态删除了某个表单项,不 alert 的话, form['itemName']还是那个被删除的 表单项。
这时,它的 parentNode,form 都为 null,但是却不能用 parentNode == null 来判断,不知道为啥,FF真是另人***,为了完成功能,只好用 item.form == null来判断,如:

if (obj == undefined || obj.form == null) return null;

IE则不存这个问题。

Javascript 相关文章推荐
window.open()弹出居中的窗口
Feb 01 Javascript
js图片延迟加载的实现方法及思路
Jul 22 Javascript
js判断为空Null与字符串为空简写方法
Feb 24 Javascript
js特殊字符过滤的示例代码
Mar 05 Javascript
纯JavaScript实现的分页插件实例
Jul 14 Javascript
jquery无限级联下拉菜单简单实例演示
Nov 23 Javascript
Vue.js Ajax动态参数与列表显示实现方法
Oct 20 Javascript
javascript内存分配原理实例分析
Apr 10 Javascript
记录一篇关于redux-saga的基本使用过程
Aug 18 Javascript
使用webpack/gulp构建TypeScript项目的方法示例
Dec 18 Javascript
VUE项目axios请求头更改Content-Type操作
Jul 24 Javascript
vue 使用原生组件上传图片的实例
Sep 08 Javascript
Javascript 篱式条件判断
Aug 22 #Javascript
解决AJAX中跨域访问出现'没有权限'的错误
Aug 20 #Javascript
javascript:void(0)的真正含义实例分析
Aug 20 #Javascript
利用404错误页面实现UrlRewrite的实现代码
Aug 20 #Javascript
一些不错的js函数ajax
Aug 20 #Javascript
jQuery formValidator表单验证插件开源了 含API帮助、源码、示例
Aug 14 #Javascript
jquery之Document元素选择器篇
Aug 14 #Javascript
You might like
php 删除记录实现代码
2009/03/12 PHP
解析PHP函数array_flip()在重复数组元素删除中的作用
2013/06/27 PHP
PHP 伪静态技术原理以及突破原理实现介绍
2013/07/12 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(七)
2014/06/23 PHP
PHP实现基于栈的后缀表达式求值功能
2017/11/10 PHP
setTimeout函数兼容各主流浏览器运行执行效果实例
2013/06/13 Javascript
jquery showModelDialog的使用方法示例详解
2013/11/19 Javascript
jQuery制作仿Mac Lion OS滚动条效果
2015/02/10 Javascript
jQuery选择器用法实例详解
2015/12/17 Javascript
vue 使用ref 让父组件调用子组件的方法
2018/02/08 Javascript
vue实现鼠标移入移出事件代码实例
2019/03/27 Javascript
[57:36]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第三场 2月1日
2021/03/11 DOTA
Python编程入门之Hello World的三种实现方式
2015/11/13 Python
python操作字典类型的常用方法(推荐)
2016/05/16 Python
Pycharm编辑器技巧之自动导入模块详解
2017/07/18 Python
利用python实现微信头像加红色数字功能
2018/03/26 Python
pandas.dataframe中根据条件获取元素所在的位置方法(索引)
2018/06/07 Python
Python使用pickle模块储存对象操作示例
2018/08/15 Python
如何更优雅地写python代码
2019/07/02 Python
Django在pycharm下修改默认启动端口的方法
2019/07/26 Python
python实现LRU热点缓存及原理
2019/10/29 Python
Django 实现外键去除自动添加的后缀‘_id’
2019/11/15 Python
Python使用Tkinter实现转盘抽奖器的步骤详解
2020/01/06 Python
Python爬虫实现模拟点击动态页面
2020/03/05 Python
跨域修改iframe页面内容详解
2019/10/31 HTML / CSS
Omio中国:全欧洲低价大巴、火车和航班搜索和比价
2018/08/09 全球购物
客服实习的个人自我鉴定
2013/10/20 职场文书
五年级英语教学反思
2014/01/31 职场文书
高中物理教学反思
2014/02/08 职场文书
人力资源管理专业自荐信
2014/06/24 职场文书
学校食堂食品安全责任书
2014/07/28 职场文书
运动会广播稿100字
2014/09/14 职场文书
2014年师德师风自我剖析材料
2014/09/27 职场文书
2014年化验员工作总结
2014/11/18 职场文书
魂断蓝桥观后感
2015/06/10 职场文书
详解mysql三值逻辑与NULL
2021/05/19 MySQL