code
code

Reputation: 57

javascript form validation is not working in IE8

This javascript form validation is not working in IE8 !! the form submits while the user inters invalid inputs. it is working properly in other browsers firefox ,opera, chrome. can you help me please?

<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>

Upvotes: 1

Views: 982

Answers (1)

Ian
Ian

Reputation: 50905

I'm guessing the problem is probably because of the .trim() method on the strings in your check functions. There isn't a String trim method in older browsers, you'd have to use a polyfill to make sure it's always available, no matter the browser. A good example is:

Trim string in JavaScript?

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

is what I use.

Upvotes: 2

Related Questions