使用角度js在IE9中验证失败

时间:2013-12-12 10:17:43

标签: html internet-explorer angularjs

我是Angular JS的新手。我有一个简单的表格如下: 的 test3.php:

<!DOCTYPE html>
<html ng-app>
<head>
    <script src="http://code.angularjs.org/1.2.4/angular.min.js"></script> 
</head>
<body>
    <form name="myForm" id="myForm" ng-controller="Register" ng-submit="submit()" action="test2.php" method="post">
    <label>First Name:</label>
    <input type="input" name="firstname" ng-model="firstname" required>

    <label>Last Name:</label>
    <input type="input" name="lastname" ng-model="lastname" required>

    <label>Email:</label>
    <input type="email" name="email" ng-model="email" required>

    <input type="submit" id="submit" value="Submit" />

</form>
  <script>

  function Register($scope) {
    $scope.firstname = '';
    $scope.lastname = '';
    $scope.email = '';
    $scope.submit = function() {
        document.getElementById('myForm').submit();
  };
  }
  </script>
  </body>
  </html>

test2.php:

 <?php
      echo $_POST['firstname'];
 ?>

当我加载test3.php并点击提交而不填写任何细节时,我收到相应填写字段的消息,表单未提交给test2.php。正确输入所有详细信息后,如果单击“提交”,则会看到$_POST['firstname]值。这在chrome和firefox中正常工作。

但在IE9中,根本没有验证。点击提交后,表格总是提交,是否为空。

如何在IE9中进一步使用此代码? Angular JS API为IE 8及更低版本提供了帮助。

1 个答案:

答案 0 :(得分:3)

原因是由于(IE < 10)在客户端验证方面不符合HTML5,因此如果输入元素上存在"required"属性,则不会返回true ,而是返回(string)属性值。

使用ngRequired代替required属性。