浏览器在onblur事件中返回false后没有响应

时间:2014-08-04 13:27:07

标签: javascript

我在动态生成的文本框的onblur事件中使用这段代码:

var allowed="abcdefghijklmnopqrstuvwxyzABCDEFGHIJJKLMNOPQRSTUVWXYZ" ;     
     for(i=0;i<document.getElementById("FNAME").value.length;i++)    
      {       
     if(allowed.indexOf(document.getElementById("FNAME").value.charAt(i)) == -1)           {       
      alert("FIRST NAME should be Alphabet");     
       return false;       
    }         
 }         
 var flag=false;    
         for(j=0;j<document.getElementById("FNAME").value.length;j++)   
       {  
         if(document.getElementById("FNAME").value.charAt(j)!=" ")    
       {         
   flag=true;      
      break;       
    }        
 }     
     if(flag==false)        
  {         
  alert("Please  Enter  FIRST NAME");      
      return false;   
       };

有时它运行没有任何问题,有时浏览器被挂起并且资源管理器停止工作的消息被填充(在IE8模式下使用IE10)

无法追查问题。

1 个答案:

答案 0 :(得分:0)

您可以尝试以下代码。它也做了我从你的代码中理解的同样的事情:

<强> HTML

<input id="FNAME" value="test" type="text" onblur="validateName();"/>

<强> JavaScript的:

function validateName(){
    var fName = document.getElementById("FNAME").value;
    var charCode = 0;
    if(fName.length > 0) {
         for(var i = 0; i < fName.length; i++)    
         {                
              charCode = fName.charCodeAt(i);
              if((charCode < 65 || charCode > 122)) {       
                  alert("FIRST NAME should be Alphabet");     
                  return false;       
              }
         }
    } else {
        alert("Please  Enter  FIRST NAME");
    }
}