我在表单中有一组复选框。当至少检查其中一个表格时,如何验证表格?
<div class="col-lg-9 col-md-9 col-sm-9 col-xs-9" ng-init="row.user_input = {}">
<div ng-repeat="value in row.allowed_values" class="checkbox-inline">
<input type="checkbox"
name="{{row.field}}"
value="{{value}}"
ng-model="row.user_input[value]"
ng-required="{{row.mandatory_field && !someSelected(row.user_input)}}">{{value | capitalize}}
</div>
</div>
Here一大堆细节。
答案 0 :(得分:1)
查看这个工作的plunkr:https://plnkr.co/edit/5H73o70p4ONz4jxGiY4e?p=preview
$scope.input={
values: {
'a': false,
'b': false,
'c': false
}
};
$scope.someSelected = function(values) {
for(var value in values) {
if(values[value]) {
return true;
}
}
return false;
}
您可以将用户输入保存为对象而不是数组,以检查是否至少检查了一个。 在视图中:
<form name="checkboxTest">
<div ng-repeat="(key,value) in input.values">
<input type="checkbox"
name="checkbox"
value="{{value}}"
ng-model="input.values[key]"
ng-required="!someSelected(input.values)">
{{key}}
</div>
<pre>
{{input}}
</pre>
<button type="submit" ng-disabled="!checkboxTest.$valid">Submit</button>
</form>