看了山人表单验证,又看了其他一些验证程序和相关的一些参考资料,写出了一个比较简洁的js表单验证程序。
功能简述:
验证:
http地址时间日期e-mail数字字符长度检查一项输入与另一项输入比较(例如:密码的确认输入)大小比较(只能有一个比较符号)特点
扩展容易,可以方便的添加自己需要的验证方式兼容性好(ie5,6 firefox,oprea)可用性好,没有使用alert()来弹出提示编写思路:
整个程序的结构及较简单,为了能够验证一些常用的格式,先对js的内置对象进行了扩展。比如:
string.prototype.isurl = function(){var url = /^http:\/\/[a-za-z0-9]+\.[a-za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\\])*$/;var tmpstr = this;return url.test(tmpstr);}
这个用来验证http地址。
然后写了一个对象叫做vform 包含了主要的功能,vform初始化的时候,会检查添加好的验证规则,并将要验证的表单控件对象扩展,添加validate() 和 validlength()两个函数,并且添加onblur事件来进行验证。出错提示采用的建立div对象的方法,出错就显示,正确就隐藏。所以还需要给div定义一个样式。使用前需要指定表单的id 注意是id不是name 要不然会出错,而规则添加的时候要指定的是表单控件的name属性不是id
验证规则参数:
obj — 表单控件name
minlength — 填写的字符串最小长度0意味着可以不填 而1意味着是必添
datatype — 验证格式 有
e-mailurldatenumberany还有两种动态的格式用\开头, \表单控件的name 表示必须与之的值一样;\>数字 表示大于数字,类推;但是没有\>=这样的maxlength — 大长度。
与其他程序不一样的是:我对http地址与日期格式地址的处理不同,填入的地址没有http://我会添加上后验证,这样比较人性化,符合可用性的要求。日期的处理也是一样,先尽可能的对填写的数字进行格式转化,然后再验证。格式采用了yyyy-mm-dd的格式。
原始位置:http://lxbzj.com/product/vform/index.htm ,原始文件应用一个日历输入控件在此省略。。。
总代码:
运行代码框*
vform1.0beta作者:雷晓宝时间:2006-08-08网址:http://lxbzj.come-mail:lxbzmy@163.com许可:lgpl功能简述:
验证:
http地址。时间日期e-mail数字字符长度检查一项输入与另一项输入比较(例如:密码的确认输入)大小比较(只能有一个比较符号)特点
扩展容易,可以方便的添加自己需要的验证方式兼容性好(ie5,6 firefox,oprea)。可用性好,没有使用alert()来弹出提示;使用方法
使用时,需要定义一个出错提示框的样式,本例的样式为:div.info { width: 170px;overflow:visible;height:auto;font-size: small;position: absolute;background-color: #ffffdd;border: 1px solid #000;filter:progid:dximagetransform.microsoft.shadow(color=#111111,direction=135,strength=3);padding: 5px;}
然后在网页<head>部分中添加<script type=text/javascript src=calendar/calendar.js></script>,然后可以写一个函数设置表单名称,验证规则,function start(){vformvform.form_id = 'form1';vform.err_class = 'info';// (obj,required(true/false),datatype,errmsg,minlen,maxlen,rule,patams)//验证规则,逐条填写vform.rules.add('frm_name',1,'e-mail','请您按照 user@domain.com 的格式输入电子邮件地址。<br /><span style=color:#f00>必填项目</span>');vform.rules.add('myweb',1,'url','请您按照 http://www.domain.com 的格式输入您的网址。<br /><span style=color:#f00>必填项目</span>');vform.rules.add('dateinput',0,'date','请按2000-03-05 的格式输入日期。<br /><span style=color:#f00>必填项目</span>');vform.rules.add('qq',0,'number','这必须是一个整数');vform.rules.add('least10',10,'any','您必须至少填写10个<br /><span style=color:#f00>必填项目</span>');vform.rules.add('ok100',1,'any','这里被限制为100个字符<br /><span style=color:#f00>必填项目</span>',100);vform.init();}最后为body添加onload事件。 <body onload=start();>
网站优化前需要思考的三个问题网页优化从哪些地方开始操作呢?网站设计鼓舞人心的单页网站百度推广关键字质量度优化指南网站建设:网站制作费用是多少网站有哪些推广技巧?新加坡云服务器有哪些特点?如何选择合适的国外云服务器?