如何计算单选按钮组的ng-required错误?

时间:2015-08-07 20:53:54

标签: javascript angularjs forms validation

我使用具有单选按钮组的AngularJS构建表单。我想向我的用户提供表单上有多少错误的准确计数。我的问题是:

Using this code,我正在计算表单上的错误数量。

$scope.numberoferrors = function(form) {
  var count = 0,
  errors = form.$error;
  angular.forEach(errors, function(val) {
    if (angular.isArray(val)) {
      count += val.length;
    }
  });
  return count;
};

我制作了一组两个单选按钮,并使每个按钮都需要。如果两者均未选中,则form.$error报告存在两个错误(每个输入一个),但我希望只有一个错误。令人困惑的是,一旦选择了一个单选按钮,form.$error会报告预期的零错误。

<form name="myForm" ng-submit="submitForm()" ng-controller="ExampleController">
  Errors: {{numberoferrors(myForm)}}
  <input type="radio" ng-model="test" value="yes" required> Yes
  <input type="radio" ng-model="test" value="no" required> No
</form>

有没有办法在表单上获得更准确的错误计数?

Plunkr

1 个答案:

答案 0 :(得分:0)

您可以为每个输入字段指定name="..."属性,然后访问每个字段的$ error:formName.fieldName.$error

您可以遍历表单的属性以便全部检查。

来自Angular表格指南的其中一个示例的摘录:

<form name="form" class="css-form" novalidate>
    Name:
    <input type="text" ng-model="user.name" name="uName" required="" />
    <br />
    <div ng-show="form.$submitted || form.uName.$touched">
      <div ng-show="form.uName.$error.required">Tell us your name.</div>
    </div>

如您所见,他们使用form.uName.$error

https://docs.angularjs.org/guide/forms