2012-12-10 5 views
1

javascript 양식 유효성 검사가 IE8에서 작동하지 않습니다 !! 사용자가 입력을 잘못 입력하는 동안 양식이 제출됩니다. 다른 브라우저 인 firefox, opera, chrome에서 제대로 작동합니다. 제발 도와 주실 수 있습니까?IE8에서 javascript 양식 유효성 검사가 작동하지 않습니다.

<form method="post" name="form1" id="form1" action="editAction.php" onsubmit="return check_user_info()"> 

===============================

<script type="text/javascript"> 

    function check_user_info() 
    { 
    var proceed = true; 
     if (checkUserFirstName() == 1) 
     { 
     document.getElementById("userFname_msg").style.display = "block"; 
     document.getElementById("userFname_msg1").style.display = "none"; 
     proceed = false; 
     } 
     else if (checkUserFirstName() == 11) 
      { 
      document.getElementById("userFname_msg1").style.display = "block"; 
      document.getElementById("userFname_msg").style.display = "none"; 
      proceed = false; 
      } 
      else 
      { 
      document.getElementById("userFname_msg").style.display = "none"; 
      document.getElementById("userFname_msg1").style.display = "none"; 
      } 
      //----------------------------- 
      if (checkUserLastName() == 1) 
     {document.getElementById("userLname_msg").style.display = "block"; 
     document.getElementById("userLname_msg1").style.display = "none"; 
     proceed = false;} 
     else if (checkUserLastName() == 11) 
      {document.getElementById("userLname_msg1").style.display = "block"; 
      document.getElementById("userLname_msg").style.display = "none"; 
      proceed = false;} 

     else{document.getElementById("userLname_msg").style.display = "none"; 
      document.getElementById("userLname_msg1").style.display = "none"; 
      } 
      //----------------------------- 

      if (checkMobile() == 1) 
     { 
     document.getElementById("mobile_msg").style.display = "block"; 
     proceed = false; 
     } 
     else 
     document.getElementById("mobile_msg").style.display = "none"; 


      //---------------------------------- 
       if (checkPhone() == 1) 
     { 
     document.getElementById("phone_msg").style.display = "block"; 
     proceed = false; 
     } 
     else 
     document.getElementById("phone_msg").style.display = "none"; 

      //---------------------------- 
      if (proceed) 
      { 
      alert ("your information has been updated successfully .."); 
      return proceed; 
      } 
      else 
      { 
      return false; 
      } 
     } // End function ... 
    //---------------------------------------------------- 
     function checkUserFirstName() 
     { 
     if (document.getElementById("firstName").value.trim().length == 0) 
     return 1 ; 
     else if (!(document.getElementById("firstName").value.match(/^[ \.\-_a-zA-Z]+$/))) 
     return 11 ; 
     } // End function ... 
     //-------------------------------------------------- 
     function checkUserLastName() 
     { 
     if (document.getElementById("lastName").value.trim().length == 0) 
     return 1 ; 
     else if (!document.getElementById("lastName").value.match(/^[ \.\-_a-zA-Z]+$/)) 
     return 11 ; 
     } // End function ... 
    //------------------------------------------------------------- 
     function checkMobile() 
    { 
    if (((document.getElementById("mobile").value.trim().length >0) && (document.getElementById("mobile").value.trim().length != 10))|| (isNaN(document.getElementById("mobile").value))) 
    return 1 ; 

    } // end function ... 
    //---------------------------------------------------------- 
     function checkPhone() 
    { 
    if(!document.getElementById("TelephoneNumber").value.match(/^[ \/0-9]*$/)) 
    return 1 ; 
    } // end function ... 
    </script> 
+0

아마도'check' 함수의 문자열에'.trim()'메소드가 있기 때문일 것입니다. 구형 브라우저에는 전역 트림 방법이 없으므로 항상 구현할 수 있도록 구현해야합니다. – Ian

+0

http://stackoverflow.com/questions/498970/how-do-i-trim-a-string -in-javascript – Ian

+0

감사합니다 .. 지금 작동 중입니다 :) – code

답변

2

내가 추측하고있어 문제는 아마도 체크 함수의 문자열에 .trim() 메서드 때문일 것입니다. 구형 브라우저에는 trim 문자열 메서드가 없으므로 브라우저와 상관없이 항상 사용할 수 있도록 polyfill을 사용해야합니다. 좋은 예는 다음과 같습니다

Trim string in JavaScript?

"".trim || String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g, '');}; 

내가 사용하는 것입니다.

관련 문제