JavaScript第十讲:JavaScript表单验证实例

本文通过实例讲解JavaScript如何进行表单验证,包括用户名、密码、确认密码和邮箱的合法性检查,利用函数`check`进行焦点变化时的验证,并提供错误提示。在`reg.html`中设置样式和事件,`check.js`中定义验证逻辑,确保表单数据输入符合规范。
摘要由CSDN通过智能技术生成

本节主要讲解JavaScript表单验证实例

reg.html

<head>

<style>

.stats1{

      color:#aaa;

}

.stats2{

      color:#000;

}

.stats3{

    color:red;

}

.stats4{

   color:green;

}

</style>

<script  src="check.js"></script>

</head>

<body>

<form action="reg.php" method="post" οnsubmit="regs()">

    username:<input type="text" name="username" value="">

                    <span class="stats1">请输入用户名</span><br>

    password:<input type="password" name="password" value=""><br>

                       <span class="stats1">请输入用户密码</span><br>

    repass:<input type="password" name="repass" value=""><br>

                      <span class="stats1">请输入用户确认密码</span><br>

   email:<input type="text" name="email" value=""><br>

                     <span class="stats1">请输入邮箱</span><br>

   other:<input type="text" name="other" value=""><br>

                       <span class="stats1">请输入其他</span><br>

    submit:<input type="submit" name="sub" value="submit"><br>                      

</form>

</body>

 

 

 

 

 

 

 

 

 

 

check.js

//获取下一个span,可以通过这个对象给状态

function gspan(cobj){

    while(true){

    if(cobj.nextSibling.nodeName!="SPAN")

        cobj=cobj.nextSibling;

     else

          return cobj.nextSibling;

   }

}

//通用的检查方法,第一个参数obj是用来检查的对象

 第二个参数info 是用来检查的提示信息

第三个参数 fun 是一个回调函数,用来检查值是否按条件输入

第四个参数,click只是一个状态,分清楚是单击提价还是失去焦点

function check(obj,info,fun,click){

  var sp=gspan(obj);

 obj.οnfοcus=function(){

  sp.innerHTML=info;

  sp.className="stats2";

}

obj.οnblur=function(){

     if(fun(this.value)){

      sp.innerHTML="输入正确";

      sp.className="stats4";

    }else{

         sp.innerHTML=info;

         sp.className="stats3";

      }

    }

  if(click=="click")

    obj.onblur();

}

//页面加载完自动调用

οnlοad=regs

 

//一个函数,可以使用onsubmit调用,也可以使用onload调用

function regs(click){

var stat=true;

var username=document.getElementsByName("username")[0];

var password=document.getElementsByName("password")[0];

var repass=document.getElementsByName("repass")[0];

var email=document.getElementsByName("email")[0];

var other=document.getElementsByName("other")[0];

 check(username,"用户名的长度要在3-20之间",function(val){

if(val.match(/^\s+$/) && val.length>=3 && val.length<=20)

   return true;

else

   stat=false;

    return false;

 

}.click);

check(password,"密码必须在6-20之间",function(val){

if(val.match(/^\s+$/) && val.length>=6 && val.length<=20)

   return true;

else

   stat=false;

    return false;

 

});

},click)

check(repass,"确定密码要和上面一致,规则也要相同",function(val){

 

if(val.match(/^\s+$/) && val.length>=6 && val.length<=20 && val==password.value)

   return true;

else

  stat=false;

    return false;

 

},click)

check(email,"要按邮箱规则输入",function(val){

  if(val.match(/\w+@\w+\.\w/)){

     return true;

}else{

    stat=false;

     return false; 

 }

},click)

  return stat;

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值