自定义表单验证

自定义表单验证:

 

代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML>

<HEAD>

<TITLE> New Document </TITLE>

<META NAME="Generator" CONTENT="EditPlus">

<META NAME="Author" CONTENT="">

<META NAME="Keywords" CONTENT="">

<META NAME="Description" CONTENT="">

<meta http-equiv="Content-Type" content="text/html;charset=gb2312"/>

<link rel="stylesheet" href="css/validator.css" type="text/css"></link>

<link rel="stylesheet" href="css/style.css" type="text/css"></link>

 

</HEAD>

<script type="text/javascript">

//form表单调用验证的信息

var object={};

object.onready=function(handler){

window.οnlοad=handler;

}

handler=function(){

   alert("提交前调用自己的函数");

   return false;

}

object.onready(function(){

   var v=new Validate(config);

   v.register();

});

//配置验证属性

var config={form:"myForm",submit:handler,elements:[

    {name:"userName",allownull:false,defaultMsg:"用户名不能为空",focusMsg:"请输入用户名",rightMsg:"恭喜你,用户名输入正确!",errorMsg:"抱歉,用户名输入不合法",tips:"userNameTip",regexp:/^\w{6,12}$/},

{name:"password",allownull:false,defaultMsg:"密码不能为空",focusMsg:"请输入密码",rightMsg:"恭喜你,密码输入正确!",errorMsg:"抱歉,密码输入不合法",tips:"passwordTip",regexp:/^\w{6,12}$/}

]};

 

//进行验证信息

Validate=function(config){

   this.config=config;

   this.form=document.getElementById(this.config.form);

   this.register=function(){

 var e=this.config.elements;

 for(var i=0;i<e.length;i++){

    this.form[e[i].name].οnfοcus=setFocusHandler(getEl(e[i].tips),e[i].focusMsg,"onfocus");

this.form[e[i].name].οnblur=setBlurHandler(e[i]);

    setText(getEl(e[i].tips),e[i].defaultMsg,"onshow");

 }

 this.form.οnsubmit=submitHandler(this.form);

   }

   //得到Id

   getEl=function(id){

      return document.getElementById(id);

   }

   //设置提示文本

   setText=function(obj,msg,image){

      obj.className=image;

      obj.innerHTML=msg;

 

   }

   //设置得到焦点提示文本

   setFocusHandler=function(obj,msg,image){

      return function(){

    setText(obj,msg,image);

 }

  }

  judgeInfoAllowNull=function(shuxing,value){

    if(!value){         //没有填的情况

setText(getEl(shuxing.tips),shuxing.defaultMsg,"onshow");           //默认信息

}else{          //有填的情况

if(value.match(shuxing.regexp)){

setText(getEl(shuxing.tips),shuxing.rightMsg,"oncorrect");           //填写正确的情况

}else{

setText(getEl(shuxing.tips),shuxing.errorMsg,"onerror");            //填写不正确的情况

}

}

    }

judgeInfoAllowNotNull=function(shuxing,value){

    if(!value){         //没有填的情况

setText(getEl(shuxing.tips),shuxing.errorMsg,"onerror");           //错误信息

}else{          //有填的情况

if(value.match(shuxing.regexp)){

setText(getEl(shuxing.tips),shuxing.rightMsg,"oncorrect");           //填写正确的情况

}else{

setText(getEl(shuxing.tips),shuxing.errorMsg,"onerror");            //填写不正确的情况

}

}

    }

 

   //设置失去焦点时进行判断后提示文本

    setBlurHandler=function(shuxing){

  return function(){

     var v=this.value;

          if(shuxing.allownull){   //允许为null的情况

              judgeInforAllowNull(shuxing,v);

 }else{             //不允许为null的情况

  judgeInfoAllowNotNull(shuxing,v);

 }

  }

}

 

submitHandler=function(f){

   var c=this.config;

var isTrue=true;

return function(){

for(var i=0;i<c.elements.length;i++){

 var shuxing=c.elements[i];

 var value=f[shuxing.name].value;

 if(shuxing.allownull){   //允许为null的情况

judgeInfoAllowNull(shuxing,value);

 }else{             //不允许为null的情况

judgeInfoAllowNotNull(shuxing,value);

 }

  }

  var handler=c.submit;

  isTrue=handler();

  return isTrue;

}

}

}

 

 

</script>

<BODY>

<form action="" method="POST" id="myForm" name="myForm">

<center>

<table>

<tr>

<td>用户名:</td><td><input type="text" name="userName" value="" width=80></input><span id="userNameTip"></span></td>

</tr>

<tr>

<td>密  码:</td><td><input type="text" name="password" value=""  width=80></input><span id="passwordTip"></span></td>

<tr>

<td></td><td><input type="submit" name="submit" value="我要提交"><td>

</tr>

</table>

</center>

</form>

</BODY>

</HTML>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值