根据自定类型,采用JAVASCRIPT方便进行数据完整性验证,所有页面都可以通用

页面输入完整性是编写BS经常遇到的问题,如果那里需要就到那里写,那可是要花不少的时候,并且造成不必要的浪费,下面是一个通过校验脚本,使用非常方便,通过传入FORM名就可以进行校验,通过在页面控件中增加用户本身自定义属性,进行方便的验证,包括数字的输入、密码的输入、EMAIL的输入,用户本身可以进行无限的扩展,使用如下,在页面中加入如下代码:

<formname="form1"> <inputtype="text"name="t1"req="0"size="20"><br> <inputtype="text"name="t2"req="0"size="20"><br> <inputtype="text"name="t3"req="0"size="20"><br> <inputtype="text"name="t4"req="1"size="20"><br> <inputtype="text"name="t5"req="1"customtype="email"displayname="电子邮件"size="20"><br> <inputtype="button"name="bt"value="check"onclick="checkForm(document.form1)"> </form>

并在页头加以包含以下代码的JS脚本:

varcustomtypes=newArray("num","plus","int","email","link","password","name","date","money","date8"); varcustommessage=newArray( "不是一个有效的数字。", "不是一个有效的正整数。", "不是一个有效的整数。", "不是一个有效的电子邮件地址。", "不是一个有效的链接,请确认输入了完整的地址,例如http://www.cnlist.com。", "不是一个有效的密码,密码只能使用字母、下划线与数字,不能包含符号与空格。", "不是一个有效的名称,名称只能使用字母、下划线与数字,不能包含符号与空格。", "不是一个有效的日期。", "不是一个有效的money格式。", "不是一个有效的8位日期,如:20050801。" ); functioncheckForm(oForm){ window.event.returnValue=false; for(vari=0;i<oForm.all.tags("input").length;i++){ varele=oForm.all.tags("input")[i]; varct=ele.getAttribute("customtype"); varreq=ele.getAttribute("req"); vardn=ele.getAttribute("displayname"); if(null==dn){ dn=ele.name; } dn="“"+dn+"”"; if(ele.value!=null){ ele.value=ele.value.replace(/%/g,"%"); } varnr=newString(ele.value); if("1"==req){ if(nr.length<1){ alert(dn+"不可以省略,请重新输入。"); //ele.focus(); focusIt(ele); returnfalse; } } if((''==req||'0'==req||null==req)&&(ele.value==""))continue;//不必要且没有输入时,下一个 if(((""==req)||(null==ct))&&(ele.value==""))continue; //检查自定义类型 //纠正自定义类型在req不等于1时仍要求输入的bug if(("1"==req)||(nr.length>0)){ for(varj=0;j<customtypes.length;j++){ if(ct==customtypes[j]){ if(ct=="money"){ eval("varrtn=check_"+customtypes[j]+"(ele);"); }else{ eval("varrtn=check_"+customtypes[j]+"(ele.value);"); } if(!rtn){ alert(dn+custommessage[j]); //ele.focus(); focusIt(ele); returnfalse; } } } } } window.event.returnValue=true; returntrue; } functioncheck_money(s){ s.value=s.value.replace(/,/g,"") varre=/^(\+|-)?\d+(.\d+)?$/i; returnre.test(s.value); } functioncheck_email(s){ varre=/^\w+@(\w)+((.(\w)+)+)?$/i; returnre.test(s); } functioncheck_num(s){ varre=/^(\+|-)?\d+(.\d+)?$/i; returnre.test(s); } functioncheck_int(s){ varre=/^(\+|-)?\d+$/i; returnre.test(s); } functioncheck_plus(s){ varre=/^[1-9]\d*$/i returnre.test(s); } functioncheck_link(s){ varre=/^(http|mailto|ftp|https|telnet):\/{2}/i; returnre.test(s); } functioncheck_password(s){ varre=/^\w+$/i; returnre.test(s); } functioncheck_name(s){ returncheck_password(s); } functioncheck_date8(DateString){ returnisDateEight(DateString); } //日期检测 functioncheck_date(DateString){ if(DateString==null)returnfalse; if(Dilimeter==''||Dilimeter==null) varDilimeter='-'; if(Dilimeter.indexOf("/")>0) { Dilimeter="/"; } vartempy=''; vartempm=''; vartempd=''; vartempH=""; vartempM=""; vartempS=""; vartempymd=""; vartemphms=""; vartempArray; if(DateString.length<8&&DateString.length>19){ returnfalse; } if(DateString.indexOf("")>0) { temp=DateString.split(""); tempymd=temp[0]; temphms=temp[1]; } else { tempymd=DateString; temphms="00:00:00"; } tempArray=tempymd.split(Dilimeter); if(tempArray.length!=3){ returnfalse; } if(tempArray[0].length==4) { tempy=tempArray[0]; tempd=tempArray[2]; tempm=tempArray[1]; } else { tempy=tempArray[2]; tempd=tempArray[1]; tempm=tempArray[0]; } tempArray=temphms.split(":"); if(tempArray.length>3||tempArray.length<2){ returnfalse; } switch(tempArray.length){ case2: tempH=tempArray[0]; tempM=tempArray[1]; tempS="00"; break; case3: tempH=tempArray[0]; tempM=tempArray[1]; tempS=tempArray[2]; break; } vartDateString=tempy+'/'+tempm+'/'+tempd+''+tempH+":"+tempM+":"+tempS; vartempDate=newDate(tDateString); if(isNaN(tempDate)){ returnfalse; } if((tempDate.getYear().toString()==tempy||tempDate.getYear()==parseInt(tempy,10)-1900) &&(tempDate.getMonth()==parseInt(tempm,10)-1) &&(tempDate.getDate()==parseInt(tempd,10)) &&(tempDate.getHours().toString()==parseInt(tempH,10)) &&(tempDate.getMinutes().toString()==parseInt(tempM,10)) &&(tempDate.getSeconds().toString()==parseInt(tempS,10))) { returntrue; } else { alert('tDateString='+tDateString); returnfalse; } } //激活输入组件的焦点 functionfocusIt(obj){ try{ varele=mtb; }catch(e){ try{ obj.focus(); return; }catch(e){ return; } } for(vari=0;i<ele.length;i++){ swH(i); try{ obj.focus(); }catch(e){ continue; } break; } try{ obj.focus(); }catch(e){ returnfalse; }returntrue; }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值