Javascript注册验证过程

1.注册页面

<html>
<head>
<title>注册页面</title>
  <style>
    .stats1{
      color:#aaa;
    }
    .stats2{
      color:#000;
    }
    .stats3{
      color:red;
    }
    .stats4{
      color:green;
    }
</style>
<script src="./regedit.js"></script>
</head>
<body>
  <form action="24.html" method="post" onsubmit="return regs('click')">
    username:<input type="text" name="username"/>
          <span class="stats1">请输入用户名</span><br/>
    password:<input type="password" name="password"/>
          <span class="stats1">请输入用户密码</span><br/>
    repass:<input type="password" name="repass"/>
          <span class="stats1">请输入用户确认密码</span><br/>
    other:<input type="text" name="other"/>
          <span class="stats1">请输入其他</span><br/>
    <input type="submit" name="sub" value="submit"/>
  </form>
</body>
</html>

2.验证js


/**
* 取得html标签对象
* 获得下一个span,可以通过这个对象给状态
*/
function getTag(obj){
  while(true){
    if(obj.nextSibling.nodeName !='SPAN'){
      obj = obj.nextSibling;
    }else{
      return obj.nextSibling;
    }
  }
}

/**
* 通用检查方法
* 第一个参数:obj是用来检查的对象
* 第二个参数:info是用来检查的提示信息
* 第三个参数,fun是一个回调函数,用来检查值是否按条件输入
* 第四个参数,click只是一个状态,分清楚是单击提交,还是失去焦点调用
*/
function check(obj,info,fun,click){
  var sp = getTag(obj);
  /**
  * 对象获得焦点处理函数
  */
  obj.onfocus=function(){
    sp.innerHTML=info;
    sp.className="stats2";
  }

  /**
  * 对象失去焦点的处理函数
  */
  obj.onblur=function(){
    if(fun(this)){
      sp.innerHTML=info;
      sp.className="stats3";
    }else {
      sp.innerHTML="输入的用户名正确";
      sp.className="stats4";
    }
  }
  if(click =='click'){
    obj.onblur();
  }
}
//页面加载完自动调用
onload=regs;
/**
* 函数,可以使用onsubmit调用,也可以使用onload调用
*/
function regs(click){
  var status = true;
  var username = document.getElementsByName("username")[0];
  var password = document.getElementsByName("password")[0];
  var repass = document.getElementsByName("repass")[0];
  var other = document.getElementsByName("other")[0];

  check(username,"输入的用户名长度为3~10",function(obj){
      if(obj.value.length<3 || obj.value.length>10){
        status= false;
        return true;
      }else{
        return false;
      }
   },click);

  check(password,"输入的密码长度为4~12",function(obj){
      if(obj.value.length<4 || obj.value.length>12){
        status = false;
        return true;
      }else{
        return false;
      }
   },click);
  return status;
}

原文地址:https://www.cnblogs.com/kangxuebin/p/3105049.html