【问题标题】:How can I count ng-required errors for groups of radio buttons?如何计算单选按钮组的 ng-required 错误?
【发布时间】:2015-08-07 20:53:54
【问题描述】:

我正在使用具有单选按钮组的 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

【问题讨论】:

    标签: javascript angularjs forms validation


    【解决方案1】:

    您可以给每个输入字段一个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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-05
      • 2015-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多