JavaScript 表单验证在 IE8 中不起作用

标签 javascript forms internet-explorer validation onsubmit

此 javascript 表单验证在 IE8 中不起作用!! 表单提交,而用户插入无效输入。 它在其他浏览器 firefox、opera、chrome 中正常工作。 你能帮帮我吗?

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

最佳答案

我猜问题可能是因为检查函数中字符串的 .trim() 方法。旧版浏览器中没有 String trim 方法,您必须使用 polyfill 来确保它始终可用,无论浏览器如何。一个很好的例子是:

Trim string in JavaScript?

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

是我用的。

关于JavaScript 表单验证在 IE8 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13796265/

相关文章:

php - 在页面刷新时保留基于选择框的值

java - 访问 Intellij Form Designer 对象

forms - Angular 2 : ControlGroup inside ControlArray

javascript - 在 IE (Internet Explorer) 中从非 HTML5 窗口打开 HTML5 窗口

html - IE7 : Nested inline elements are causing parent to act like block

javascript - 如何动态地在 React JSX 元素上设置属性?

javascript - 为什么 angular ng-bind 不从 JSON 中读取\n 换行符?

javascript src 无法从父级 jquery 加载中工作

php - Mysql更新时出错

javascript - 为接受事件的函数调用设置超时在 IE7 中不起作用