function checkInput(){
  alert("登录密码");
  var myDiv=document.getElementById("passwordError");
  myDiv.innerHTML="";
  var password=document.getElementById("password").value;
  if(password.length==0){
     myDiv.innerHTML="<font color='red'>请输入登录密码</font>";
     $("#password").focus();
     return;
  }
//判断是否是数字、字母、下划线、中划线
for(var i=0;i<password.length;i++){
var str=password.charAt(i);
 var   reg=/[^A-Za-z0-9_-]/g  
          if (reg.test(str)){ 
          $("#password").focus();
          alert("输入的字符不正确");  
              return false;   
          }        
}
  else{
  return ture;
  }
  }
   如果加了for循环onblur事件就无效了,这是怎么回事呢

解决方案 »

  1.   

    true写错了,而且括号应该也不匹配,
    试试下面的呢
    function checkInput(){
    alert("登录密码");
    var myDiv=document.getElementById("passwordError");
    myDiv.innerHTML="";
    var password=document.getElementById("password").value;
    if(password.length==0) {
    myDiv.innerHTML="<font color='red'>请输入登录密码</font>";
    $("#password").focus();
    return;
    }
    //断是否是数字、字母、下划线、中划线
    for(var i=0;i<password.length;i++) {
    var str=password.charAt(i);
    var reg=/[^A-Za-z0-9_-]/g   
    if (reg.test(str)) {  
    $("#password").focus();
    alert("输入的字符不正确");   
    return false;   
    }   
    }
    return true;
    }
      

  2.   

    不行肯定就是js有错误,特别是for循环相关的,ie应该有通知错误行号的,
    跟onblur不能用for循环没有关系
      

  3.   

    我这样写onblur事件还是无效如:for(var i=0;i<3;i++){alert(i);}
    只要是for循环就onblur事件无效
      

  4.   

    原来是else这一截不能for循环后面
      

  5.   

    我给你的代码不是没有else分支了吗?