<script type="text/javascript">
function checkname()
{
  var name=document.login.username.value;
  if(name==null || name=="")
  {
    alert("用户名不能为空!");
document.login.username.focus();
return false;
  }   
  else if(name.length!=0)
  {
    for(var i=0;i<name.length;i++)
    {
      var a =name.toLowerCase().charCodeAt(i);
      if(!((a>='48'&& a<='57')||(a>='97'&& a<='122')||(a=='95')))
      {
        alert("username限于0-9,a-z和下划线!");
        document.login.username.value='';
        document.login.username.focus();
return false;
      } 
  return true;
  
    }
}
 }
function checkpass()
{
  var pass=document.login.password.value;
  if(pass==null || pass==""){
alert("密码bweikong!");
    document.login.password.focus();
return false;
  }
 else if(pass.length<6)
  {
    alert("密码至少6位!");
    document.login.password.value='';
    document.login.password.focus();
 return false;
  } else{
  return true;
  
}
}
function checkrepass()
{
  var repass=document.login.repass.value;
  var pass=document.login.password.value;
  if(repass!=pass)
  {
    alert("两次输入密码不一致!");
    document.login.repass.focus();
    return false;
  }
  else
  {
  return true
  }
}
function checkemail()
{
  var email=document.login.email.value;
  var at=email.indexOf("@");
  var d=email.lastIndexOf(".");
  if(email==null || email==""){
alert("emailbunengweikong!");
    document.login.email.focus();
    return false;
  }else{
  if(at==-1||d==-1||at-d>0)
  {
    alert("请输入正确的email格式!");
    document.login.email.focus();
    return false;
  }
  else{
  return true;
  }
  }
}
</script>
</head>
<body>
<form name="login" method=post action="../success.html">
<table align=center>
<tr>
<td>username</td>
<td><input name="username" id="username" type="text" onBlur="checkname()"/></td>
</tr>
<tr>
<td>password</td>
<td><input name="password" id="password" type="password" onBlur="checkpass()"/></td>
</tr>
<tr>
<td>repass</td>
<td><input name="repass" id="repass" type="password" onBlur="checkrepass()" /></td>
</tr>
<tr>
<td>email</td>
<td><input name="email" id="email" type="text" onBlur="checkemail()"/></td>
</tr>在Ie里面是死循环,
我是初学者,请大家尽量点,小弟在此先谢了

解决方案 »

  1.   

    else if(){}都换成if(){}
      

  2.   

    当先点username,然后点password时,password onfocus时,执行username的onblur,username的onblur里面的alert和username.foucus()都会触发password的onblur,而password处理中的alert和focus又会触发username的onblur,由此导致死循环。其他情况的死循环与此类似。
    参考如下<script type="text/javascript">
    function checkname()
    {
      var name=document.login.username.value;
      if(name==null || name=="")
      {
        //alert("用户名不能为空!");
    document.getElementById("username").parentNode.parentNode.childNodes(2).innerHTML="<font color='red'>用户名不能为空!</font>";
    //document.login.username.focus();
    return false;
      } 
      
      else if(name.length!=0)
      {

        for(var i=0;i <name.length;i++)
        {
          var a =name.toLowerCase().charCodeAt(i);
          if(!((a>='48'&& a <='57')||(a>='97'&& a <='122')||(a=='95')))
          {
            //alert("username限于0-9,a-z和下划线!");
    document.getElementById("username").parentNode.parentNode.childNodes(2).innerHTML="<font color='red'>username限于0-9,a-z和下划线!</font>";
            document.login.username.value='';
           // document.login.username.focus();
    return false;
          }
      else {
    document.getElementById("username").parentNode.parentNode.childNodes(2).innerHTML="";
    }
    return true;
     
        }

    }
    }
    function checkpass()
    {
      var pass=document.login.password.value;
      if(pass==null || pass==""){
    //alert("密码bweikong!");
    document.getElementById("password").parentNode.parentNode.childNodes(2).innerHTML="<font color='red'>pass is null</font>";
        //document.login.password.focus();
    return false;
      }
    else if(pass.length <6)
      {
        //alert("密码至少6位!");
    document.getElementById("password").parentNode.parentNode.childNodes(2).innerHTML="<font color='red'>pass should more then 6</font>";
        document.login.password.value='';
        document.login.password.focus();
    return false;
      } else{
    document.getElementById("password").parentNode.parentNode.childNodes(2).innerHTML="";
      return true;
     
    }
    }
    function checkrepass()
    {
      var repass=document.login.repass.value;
      var pass=document.login.password.value;
      if(repass!=pass)
      {
        //alert("两次输入密码不一致!");
    document.getElementById("repass").parentNode.parentNode.childNodes(2).innerHTML="<font color='red'>两次输入密码不一致</font>";
        //document.login.repass.focus();
        return false;
      }
      else
      {
    document.getElementById("repass").parentNode.parentNode.childNodes(2).innerHTML="";
       return true
      }
    }
    function checkemail()
    {
      var email=document.login.email.value;
      var at=email.indexOf("@");
      var d=email.lastIndexOf(".");
      if(email==null || email==""){
    //alert("emailbunengweikong!");
    document.getElementById("email").parentNode.parentNode.childNodes(2).innerHTML="<font color='red'>emailbunengweikong!</font>";
        //document.login.email.focus();
        return false;
      }else{
      if(at==-1||d==-1||at-d>0)
      {
        //alert("请输入正确的email格式!");
    document.getElementById("email").parentNode.parentNode.childNodes(2).innerHTML="<font color='red'>请输入正确的email格式</font>";
        //document.login.email.focus();
        return false;
      }
      else{
      document.getElementById("email").parentNode.parentNode.childNodes(2).innerHTML="";
      return true;
      }
      }
    }
    </script>
    </head>
    <body>
    <form name="login" method=post action="../success.html">
    <table align=center>
    <tr>
    <td>username </td>
    <td> <input name="username" id="username" type="text" onBlur="checkname()"/> </td>
    <td></td>
    </tr>
    <tr>
    <td>password </td>
    <td> <input name="password" id="password" type="password" onBlur="checkpass()"/> </td>
    <td></td>
    </tr>
    <tr>
    <td>repass </td>
    <td> <input name="repass" id="repass" type="password" onBlur="checkrepass()" /> </td>
    <td></td>
    </tr>
    <tr>
    <td>email </td>
    <td> <input name="email" id="email" type="text" onBlur="checkemail()"/> </td><td></td>
    </tr>
      

  3.   

    楼上的验证应该没什么问题
      在你的代码中发现一个Bug  "<form name="login" method=post action="../success.html"> "