AngularJS中的验证无效

时间:2015-09-11 11:15:38

标签: javascript angularjs twitter-bootstrap

我有一个表单,其中我使用Bootstrap添加了两个文本字段。现在我尝试为这两个字段添加AngularJs验证但不能这样做。这是我对userId文本字段的标记。

    <form role="form" name="Loginform" action="" method="post" class="registration-form">
    <div class="form-group">
    <label class="sr-only" for="UserID">User ID</label>
    <input type="text" name="UserID" ng-model="user" placeholder="User ID..." class="form-first-name form-control" id="UserID" required>
    <span style="color:red" ng-show="Loginform.user.$dirty && myForm.user.$invalid">
    <span ng-show="Loginform.user.$error.required">Username is required.</span>
    </span>
    </div>
    </form>

请帮我解决这个问题..谢谢..

4 个答案:

答案 0 :(得分:1)

如果要验证一个或多个输入字段,最好的方法是创建一个控制器并调用它。

function Ctrl($scope) {
  $scope.isInvalid = function(field){
    return $scope.myForm[field].$invalid && $scope.myForm[field].$dirty;
  };
  $scope.isValid = function(field){
    return $scope.myForm[field].$valid && $scope.myForm[field].$dirty;
  };
}
<!DOCTYPE html>
<html ng-app>
  <head lang="en">
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.0.4/angular.min.js"></script>
    <script src="script.js"></script>
  </head>
  
  <body ng-controller="Ctrl">
    <form name="myForm" novalidate class="form-horizontal">
      <div class="control-group" ng-class="{error: isInvalid('name')}">
        <label>Name:</label>
        <input type="text" name="name" placeholder="Name" ng-model="user.name" required/>
        <span ng-show="!isValid('name')">Name is required</span>
      </div>
      
    </form>
  </body>
  
</html>

希望它适合你:)

答案 1 :(得分:1)

您能否看到我更新了代码并进行了一些更正 http://jsfiddle.net/v7je78gq/

<span style="color:red" ng-show="Loginform.$dirty && Loginform.$invalid">
<span ng-show="Loginform.$error.required">Username is required.</span>
</span>

这是因为你在检查表格中不存在的财产 希望这会对你有所帮助

答案 2 :(得分:0)

输入字段的名称是UserID而非用户。

ng-show="Loginform.UserID.$error.required"

答案 3 :(得分:0)

您输入的名称与验证元素未正确对应

<form role="form" name="Loginform" action="" method="post" class="registration-form">
                        <div class="form-group">
                        <label class="sr-only" for="UserID">User ID</label>
                        <input type="text" name="UserID" ng-model="user" placeholder="User ID..." class="form-first-name form-control" id="UserID" required>
                        <span style="color:red" ng-show="Loginform.UserID.$touched && Loginform.UserID.$invalid">
                        <span ng-show="Loginform.UserID.$error.required">Username is required.</span>
                        </span>
                        </div>
                    </form>