1

在我的输入中,我有几个带有验证的输入,我需要ng-invalid仅在用户提交表单后才应用该类。

在提交时,我可以在范围上设置一个值......

$scope.submitForm = function () {
    $scope.submited = true;
    // other bits
}

...但我无法弄清楚如何在ng-invalid不更改验证本身的情况下有条件地显示。

我正在跑步1.1.5

4

3 回答 3

0

演示

 <input type="email" name="email" ng-model="formData.email" required />
<span ng-show="(myForm.email.$dirty || submitted) && myForm.email.$error.required">
  Email is required
</span>

仅在用户与输入交互后使用 $dirty 标志显示错误:

于 2013-09-11T10:31:04.733 回答
0
<div ng-app>
<div ng-controller="testController">
    <form name="formValidate">
    <input type="text" name="testing" required ng-model="testField" ng-class="{ invalid: submitted && formValidate.testing.$invalid }"/>
        <button ng-click="test()">Test</button>
        </form>
</div>
</div>
<script>
    var app = angular.module('', []);
function testController($scope)
{
    $scope.submitted = false;
    $scope.test= function()
    {
        $scope.submitted = true;    
        console.log($scope.formValidate.$invalid);
    }
}
</script>
<style>
    .invalid
{
    border:1px solid red;   
}
</style>
于 2014-10-03T06:57:55.660 回答
0

对于自定义错误,我建议在每个字段中使用 $setValidity 方法。

$scope.formName.fieldName.$setValidity('custom_error_name', true);

因此您也可以更好地控制 css 部分,因为这种工作流程还会在您的字段内创建一个自定义类,例如“ng-custom_error_name”,这样您就可以处理它。

于 2015-09-02T07:02:47.623 回答