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 相关文章推荐
jquery 常用操作方法
Jan 28 Javascript
模拟jQuery ajax服务器端与客户端通信的代码
Mar 28 Javascript
javascript表格隔行变色加鼠标移入移出及点击效果的方法
Apr 10 Javascript
多种jQuery绑定事件的实现方式
Jun 13 Javascript
footer定位页面底部(代码分享)
Mar 07 Javascript
初学者AngularJS的环境搭建过程
Oct 27 Javascript
vue项目打包后打开页面空白解决办法
Jun 29 Javascript
如何为你的JS项目添加智能提示与类型检查详解
Mar 12 Javascript
微信小程序加载机制及运行机制图解
Nov 27 Javascript
Vue中fragment.js使用方法小结
Feb 17 Javascript
Vue-cli打包后如何本地查看的操作
Sep 02 Javascript
npm全局环境变量配置详解
Dec 15 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缓存技术的使用说明
2011/08/06 PHP
PHP完全二叉树定义与实现方法示例
2017/10/09 PHP
可以将word转成html的js代码
2010/04/11 Javascript
innerHTML属性,outerHTML属性,textContent属性,innerText属性区别详解
2015/03/13 Javascript
jQuery实现不断闪烁文字的方法
2015/05/15 Javascript
移动端JQ插件hammer使用详解
2015/07/03 Javascript
jquery中object对象循环遍历的方法
2015/12/18 Javascript
JS实现部分HTML固定页面顶部随屏滚动效果
2015/12/24 Javascript
jQuery插件实现文字无缝向上滚动效果代码
2016/02/25 Javascript
基于BootStrap Metronic开发框架经验小结【二】列表分页处理和插件JSTree的使用
2016/05/12 Javascript
浅谈javascript的闭包
2017/01/23 Javascript
JavaScript数组去重的多种方法(四种)
2017/09/19 Javascript
Vue.js项目模板搭建图文教程
2017/09/20 Javascript
使用Angular CLI生成路由的方法
2018/03/24 Javascript
Javascript获取某个月的天数
2018/05/30 Javascript
vue+axios+mock.js环境搭建的方法步骤
2018/08/28 Javascript
JS字典Dictionary类定义与用法示例
2019/02/01 Javascript
Nuxt使用Vuex的方法示例
2019/09/06 Javascript
详解微信小程序「渲染层网络层错误」的解决方法
2021/01/06 Javascript
Python文件操作之合并文本文件内容示例代码
2017/09/19 Python
Python logging管理不同级别log打印和存储实例
2018/01/19 Python
PHP实现发送和接收JSON请求
2018/06/07 Python
python检测空间储存剩余大小和指定文件夹内存占用的实例
2018/06/11 Python
Python实现读取txt文件中的数据并绘制出图形操作示例
2019/02/26 Python
美国隐形眼镜零售商:LensPure
2019/03/10 全球购物
医学实习生自我鉴定
2013/12/12 职场文书
物业保安主管岗位职责
2013/12/25 职场文书
《新型玻璃》教学反思
2014/04/13 职场文书
工作会议方案
2014/05/21 职场文书
论文诚信承诺书
2014/05/23 职场文书
竞选班干部演讲稿600字
2014/08/20 职场文书
校园主题婚礼活动策划方案
2014/09/15 职场文书
2014年团总支工作总结
2014/11/21 职场文书
2016年学校爱国卫生月活动总结
2016/04/06 职场文书
正确使用MySQL update语句
2021/05/26 MySQL
MyBatis核心源码深度剖析SQL语句执行过程
2022/05/20 Java/Android