问题描述
我正在使用具有一组单选按钮的AngularJS构建表单。 我想为我的用户提供有关表格中有多少错误的准确计数。 我的问题是这样的:
,我可以统计表单中的错误数。
$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>
有没有一种方法可以更准确地计算表格上的错误?
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