ng-class 验证在 AngularJS 中不起作用

ng-class validation is not working in AngularJS

如果已编辑且有效,我尝试使用绿色背景。

但是,即使无效也显示绿色背景。无效时,它应该显示黄色背景和红色文本。

提前感谢您给我解决方案。

html

<div ng-app="myApp" ng-controller="formCtrl">

    <form name="inputform">
        <div ng-class="{'has-success': inputform.email.$dirty && inputform.email.$valid, 'has-error': inputform.email.$dirty && inputform.email.$invalid}">
            <label for="exampleInputEmail1">Email</label>
            <input type="text" name="email" ng-model="data.email" id="exampleInputEmail1" />
        </div>
    </form>

    {{data}}

</div>

javascript

var module = angular.module("myApp", []);

module.controller("formCtrl", ['$scope', function($scope){

    $scope.data = {};

}]);

css

.has-error {
    color: red;
    background-color: red;
}

.has-success {
    color: black;
    background-color: green;
}

没有对该输入元素应用任何验证,因此它始终有效。试试下面的表格,我已经应用了 requiredemail 验证:

(只有输入正确的邮箱才会显示为绿色)

var module = angular.module("myApp", []);

module.controller("formCtrl", ['$scope', function($scope){

    $scope.data = {};

}]);
.has-error {
    color: red;
    background-color: red;
}

.has-success {
    color: black;
    background-color: green;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app="myApp" ng-controller="formCtrl">

    <form name="inputform">
        <div ng-class="{'has-success': inputform.email.$valid, 'has-error': inputform.email.$invalid}">
            <label for="exampleInputEmail1">Email</label>
            <input type="email" name="email" required ng-model="data.email" id="exampleInputEmail1" />
        </div>
    </form>

    {{data}}

</div>

或者,您可以使用 this 库以简单的方式提供 Bootstrap 表单验证。