Go homepage(回首页)
Upload pictures (上传图片)
Write articles (发文字帖)

The author:(作者)delv
published in(发表于) 2013/12/31 6:44:39
简洁实用的表单验证程序_JavaScript技术_编程技术

简洁实用的表单验证程序_JavaScript技术_编程技术-你的首页-uuhomepage.com





看了山人表单验证,又看了其他一些验证程序和相关的一些参考资料,写出了一个比较简洁的js表单验证程序。




功能简述




验证:







特点







编写思路




整个程序的结构及较简单,为了能够验证一些常用的格式,先对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 — 验证格式 有







maxLength — 最大长度。




与其他程序不一样的是:我对http地址与日期格式地址的处理不同,填入的地址没有http://我会添加上后验证,这样比较人性化,符合可用性的要求。日期的处理也是一样,先尽可能的对填写的数字进行格式转化,然后再验证。格式采用了yyyy-mm-dd的格式。




原始位置:http://lxbzj.com/product/vform/index.htm ,原始文件应用一个日历输入控件在此省略。。。




总代码




运行代码框







*



































vForm1.0beta







  • 作者:雷晓宝



  • 时间:2006-08-08



  • 网址:http://lxbzj.com



  • e-mail:lxbzmy@163.com



  • 许可:LGPL






功能简述:










  1. 验证:







    • http地址。



    • 时间日期



    • e-mail



    • 数字



    • 字符长度检查



    • 一项输入与另一项输入比较(例如:密码的确认输入)



    • 大小比较(只能有一个比较符号)












  2. 特点







    • 扩展容易,可以方便的添加自己需要的验证方式



    • 兼容性好(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;



}




然后在网页&lt;head&gt;部分中添加&lt;script type="text/javascript" src="calendar/calendar.js"&gt;&lt;/script&gt;



,然后可以写一个函数设置表单名称,验证规则,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 的格式输入电子邮件地址。&lt;br /&gt;&lt;span style="color:#f00"&gt;必填项目&lt;/span&gt;');



vform.rules.add('myweb',1,'url','请您按照 http://www.domain.com 的格式输入您的网址。&lt;br /&gt;&lt;span style="color:#f00"&gt;必填项目&lt;/span&gt;');



vform.rules.add('dateinput',0,'date','请按2000-03-05 的格式输入日期。&lt;br /&gt;&lt;span style="color:#f00"&gt;必填项目&lt;/span&gt;');



vform.rules.add('qq',0,'number','这必须是一个整数');



vform.rules.add('least10',10,'any','您必须至少填写10个&lt;br /&gt;&lt;span style="color:#f00"&gt;必填项目&lt;/span&gt;');



vform.rules.add('ok100',1,'any','这里被限制为100个字符&lt;br /&gt;&lt;span style="color:#f00"&gt;必填项目&lt;/span&gt;',100);



vform.init();



}
最后为body添加onload事件。 &lt;body onload="start();"&gt;

















[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]











If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)





QQ:154298438
QQ:417480759