100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > JS实现的通用表单验证插件完整实例【javascript】

JS实现的通用表单验证插件完整实例【javascript】

时间:2022-11-04 01:42:00

相关推荐

JS实现的通用表单验证插件完整实例【javascript】

web前端|js教程

JS,表单验证,插件

web前端-js教程

本文实例讲述了JS实现的通用表单验证插件。分享给大家供大家参考。具体如下:

打标源码,ubuntu列出所有内核,螨虫属于爬虫吗,$server php,seo面试优势lzw

这里演示一个通用的JS表单验证插件代码。使用方法:第一步:需设定表单项数据类型,第二步:实例表单验证,验证错误提示说明(程序有自带相关错误提示,可自定义每项验证错误提示时文本,只需添加msg)。

百山探索网站源码,vscode设置latex,opnfv ubuntu,tomcat 内存模型,安卓sqlite保存数组,angular 滚动条插件,前端框架中严格模式怎么取消,爬虫如何实现http2.0,php .lock,乌海seo整站优化,在线留言网站模板,网页消息提醒插件,boostrap 后台模板lzw

运行效果截图如下:

android 2048源码下载,vscode添加主文件夹,ubuntu隐藏快捷,tomcat7.0示例,爬虫数据网,php都能干什么,有免费抖音seo软件吗lzw

在线演示地址如下:

/js//js-normal-table-check-plug-codes/

具体代码如下:

无标题文档body,td{font:12px Verdana;color:#333}input,textarea,select,td,th{font:12px Verdana;color:#333;border:1px solid #999;background:#fff}table{border-collapse:collapse;}th{font:bold 12px Verdana; text-align:right;padding:5px;}td{padding:3px;line-height:1.8;}input{height:20;}textarea{width:80%;height:50px;overfmin:auto;}form{display:inline}/*输入框样式*/input[type=text],input[type=password],textarea{border:1px solid #ccc;padding:2px;border-radius:1px;box-shadow:0 1px 2px rgba(0,0,0,0.1) inset;outline:medium none;line-height:25px;-webkit-transition:all 0.15s ease-in 0s;-moz-transition:all 0.15s ease-in 0s;-o-transition:all 0.15s ease-in 0s;font-family:"Microsoft YaHei",Verdana,Arial;font-size:14px;vertical-align:top;}input[type=text],input[type=password]{height:25px;}input[type=text]:focus,input[type=password]:focus,textarea:focus{/*border-color:rgba(82,168,236,0.8);*/border-color:#52a8ec;box-shadow:0 1px 2px rgba(0,0,0,0.1) inset,0 0 5px rgba(82,168,236,0.6);outline:0 none;}使用方法

第一步:需设定表单项数据类型

<input type="text" name="name" dataType="chinese[2,8]" />

第二步:实例表单验证

new ValidatorForm(表单对象);

dataType可选参数

验证错误提示说明

程序有自带相关错误提示,可自定义每项验证错误提示时文本,只需添加msg

<input type="text" name="name" dataType="chinese[2,8]" msg="姓名必需填写1-4个汉字" />

表单验证示例 /*输入项样式*/input.vf_inCorrect,textarea.vf_inCorrect{box-shadow:0 1px 2px rgba(3,139,0,0.2) inset;border-color:#90b983;color:#2d7c14;}input.vf_inError,textarea.vf_inError{box-shadow:0 1px 2px rgba(139,23,0,0.2) inset,0 0 5px rgba(139,23,0,0.6);border-color:#d46060;color:#b40000;}.vf_Normal,.vf_Correct,.vf_Error,.vf_Focus{vertical-align:middle;display:inline-block;padding:3px;font-size:12px;margin-left:5px; background:#eee;}.vf_Normal{color:#777;}.vf_Focus{color:#000;}/*提示*/.vf_Correct{color:#20800d;display:none;}/*验证通过*/.vf_Error{color:#f00;}/*错误*//*自定义样式*/input.inTestClass,textarea.inTestClass{box-shadow:0 0 2px rgba(0,0,0,0.3) inset,0 0 5px rgba(139,23,0,0.6);border-color:#00f;color:#eee;background-color:#333;}.TestClass_OK{color:#fff;background-color:#080;}.TestClass_Err{color:#fff;background-color:#c00;} //添加事件function addEvent(o,e,f){ if(window.attachEvent){o.attachEvent("on"+e,f)}else if(window.addEventListener){o.addEventListener(e,f,false);}else{o["on"+e]=f;}}//取消事件function removeEvent(o,e,f){ if(window.detachEvent){o.detachEvent("on"+e,f);}else if(window.removeEventListener){o.removeEventListener(e,f,false);}else{o["on"+e]=null;}}// class是否存在function hasClass(obj,sClass){var reg = new RegExp("(^|\\s)" + sClass + "(\\s|$)");return reg.test(obj.className)}//阻止浏览器的默认行为function stopDefault(e){if(e&&e.preventDefault){e.preventDefault();}else{window.event.returnValue=false;}return false;}//阻断事件冒泡function stopBubble(e){if(e&&e.stopPropagation){e.stopPropagation();}else{window.event.cancelBubble=true;}}function GetID(s){return document.getElementById(s);}//创建元素function creElm(o,pN,t){ var tmp=document.createElement(t||div),p; for(p in o){tmp[p]=o[p];} return pN?pN.appendChild(tmp):document.body.appendChild(tmp);}//计算字符串长度[全角算2长度]function strLength(str){return str.replace(/[^\x00-\xff]/g,"**").length;}function SetCss(o,k,s){ var c=o.className.split( ),n=0,nCSS=\; for(var i=0;i<c.length;i++) { if(c[i]!=k){nCSS+=(nCSS==\)?c[i]: +c[i];} else{n=1;} } if(s==add){nCSS+=(nCSS==\)?k: +k;} o.className=nCSS;}//自定义验证函数function testFunction(o){ var val=o.value,len=Math.floor(strLength(val)); return {stat:len<50,msg:已输入+len+个字符;,msgCss:(len<50?TestClass_OK:TestClass_Err),inCss:null};}function ValidatorForm(f,Stat,Validator){ var vf=this; //正则,最小值,最大值,提示消息 this.Validator={ email:[/^(\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)?$/,0,0,Email地址填写错误], tel:[/^((0?1[358]\d{9})[,,]?|((0(10|2[0-9]{1}|[3-9]{1}\d{2})[-_-—]?)?\d{7,8})[,,]?)*$/,0,0,电话号码填写错误], mobile:[/^(0?1[358]\d{9})*$/,0,12,手机号码填写错误], url:[/^(http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\:+!]*([^\"\"])*)?$/,0,0,网址填写错误], number:[/^\d*$/,0,0,只能填写数字格式], english:[/^[A-Za-z]*$/,0,0,只能输入半角英文字母], chinese:[/^[\u0391-\uFFE5]*$/,0,0,只能输入全角中文], username:[/^[a-zA-Z]{1}\w*$/,4,20,帐号需由字母开头的4-20位字母、数字或下划线组成], password:[/^[\@A-Za-z0-9\!\#\$\%\^\&\*\.\~]*$/,4,20,密码长度4-20,请勿输入特殊字符], date:[/^((\d{4})[\-|\.|\/](\d{1,2})[\-|\.|\/](\d{1,2}))?$/,\,\,请填写如-1-1格式日期!], Compare:[/^[\s\S]*$/,0,0,\], length:[/^[\s\S]*$/,0,0,\], exec:[/^[a-zA-Z]{1}\w*$/,0,0,\] } //消息Box样式及框入框样式 this.Stat={ tag:span,//提示文本标签 msgNormal:vf_Normal, //正常样式 msgCorrect:vf_Correct, //正确 msgError:vf_Error, //错误 msgFocus:vf_Focus, //焦点 inCorrect:vf_inCorrect, //文本框正确 inError:vf_inError, //错误 inFocus:vf_inFocus //焦点 } if(Validator){for(var i in this.Validator){this.Validator[i]=Validator[i]!==undefined?Validator[i]:this.Validator[i];}} if(Stat){for(var i in this.Stat){this.Stat[i]=Stat[i]!==undefined?Stat[i]:this.Stat[i];}} this.Form=f; var fn=f.elements.length,i,j,_dataType; for(i=0;i<fn;i++){ _dataType=f.elements[i].getAttribute(dataType); _dataType=_dataType?_dataType.split( ):[]; for(j=0;j<_dataType.length;j++) { if(this.Validator[_dataType[j].split([)[0]]){ f.elements[i].onblur=(function(o){return function(){vf.CheckData(o);}})(f.elements[i]); if(f.elements[i].tagName.toUpperCase()==TEXTAREA){f.elements[i].onkeyup=(function(o){return function(){ var MsgTag=vf.GetMsgBox(o); MsgTag.innerHTML=已输入+Math.floor(strLength(o.value))+个字符;;}})(f.elements[i]); } } } } //提交表单 this.submit=function(e){ var fn=vf.Form.elements.length,i,j,_Err=0,_Focus,_Msg=\,t,_dataType; for(i=0;i<fn;i++){ _dataType=f.elements[i].getAttribute(dataType); _dataType=_dataType?_dataType.split( ):[]; for(j=0;j0){ e&&stopDefault(e); //_Msg //提示文本不完善,未使用,直接提示错误数量 alert(共有+_Err+项填写错误!); _Focus.focus(); } } addEvent(f,submit,vf.submit);}ValidatorForm.prototype={ //验证内容是否正确 CheckData:function(o){ var _dataType=o.getAttribute(dataType),i,s=true,_Msg=\,_msgCss,_inCss,_mdt,min,max,_dt; _dataType=_dataType?_dataType.split( ):[]; for(i=0;s&&i|>=|<|1?this.Form[_mdt[2][0]][0].value:this.Form[_mdt[2][0]].value;s=s&&this.Check_Compare(o.value,_mdt[1],v2,_mdt[3]);//生成提示文本var cc;switch (_mdt[1]){case ">": cc=大于;break;case ">=": cc=大于或等于;break;case "<": cc=小于;break;case "=min-0&&v=min-0;} else if(max){return v": return v>v2;break; case ">=": return v>=v2;break; case "<": return v<v2;break; case "<=": return v<=v2;break; case "!=": return v!=v2;break; default: return v==v2; } }, //日期验证范围 Check_Date:function(v,min,max){ var _mdt=v.match(this.Validator.date[0]); if(_mdt==null){return false;} v=new Date(_mdt[2],_mdt[3]-1,_mdt[4])-new Date; _mdt=min.match(this.Validator.date[0]); min=_mdt==null?null:new Date(_mdt[2],_mdt[3]-1,_mdt[4])-new Date; _mdt=max.match(this.Validator.date[0]); max=_mdt==null?null:max=new Date(_mdt[2],_mdt[3]-1,_mdt[4])-new Date; return this.Check_Num(v,min,max); }, //设置样式 vfSetCss:function(o,css,s){ if(!s){ SetCss(o,this.Stat.inCorrect,del); SetCss(o,this.Stat.inError,del); SetCss(o,this.Stat.inFocus,del); } if(s){o.className=css;}else{SetCss(o,css,add);} }}new ValidatorForm(GetID( heForm));

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。