Angularjs 选择至少一个验证复选框
我有一组复选框,我想从中选择至少一个复选框,并显示验证错误 我该怎么做?这是我的密码Angularjs 选择至少一个验证复选框,angularjs,node.js,mean-stack,mean.io,Angularjs,Node.js,Mean Stack,Mean.io,我有一组复选框,我想从中选择至少一个复选框,并显示验证错误 我该怎么做?这是我的密码 <div class="form-group" ng-class="{ 'has-error' : submitted && form.field.$invalid }"> <div class="col-md-12"><label for="field" >Select at leat one</label></div>
<div class="form-group" ng-class="{ 'has-error' : submitted && form.field.$invalid }">
<div class="col-md-12"><label for="field" >Select at leat one</label></div>
<div class="col-md-2" data-ng-repeat="i in [1,2,3,4]">
<label><input type="checkbox" name="field[$index]" value="{{i}}" data-ng-model="form.field[$index]" required/>Choice {{i+1}}</label>
</div>
<div ng-show="submitted && form.field.$invalid" class="help-block">
<p ng-show="form.field.$error.required">Please select at least one choice<p>
</div>
</div>
</div>
一点一点地选择
选择{{i+1}
请至少选择一个选项
您可以使用本机javascript函数迭代数组。首先想到的是和
使用some,您可以确定数组中的一项是否验证为真,使用过滤器可以找到通过自定义表达式的所有元素,并检查新创建的数组是否具有特定长度
例如:
您可以根据验证结果标记显示错误的变量。可以找到一个工作演示。您可以正确创建复选框列表对象数组,然后绑定它。请找到
{{chk.group}}
{{vale.label}
从{{chk.group}中至少选择一个选项
我对您的要求不是很确定,所以我花了点时间,使用了过滤器和一些函数来验证至少一个复选框。谢谢@skubski请发布一些描述作为答案,这样我可以接受你的答案。添加了它,谢谢@道
var atleastOne = this.form.field.some(function(element) {
return element;
});
if(atleastOne) {
window.alert("validated with some");
}
var filtered = this.form.field.filter(function(element) {
if(element) { return element; }
});
if(filtered.length > 0) {
window.alert('validated with filter');
}
<div ng-controller="ChckbxsCtrl">
<div ng-repeat="chk in items">
<div style="width:500px;height:100px;border:1px solid #000;">
<B>{{chk.group}}</B><br>
<label ng-repeat="vale in chk.values">
<input type="checkbox" ng-model="vale.val" />
{{vale.label}}</label>
</div>
<span ng-show="chk.isValid">Select at least one option from {{chk.group}}</span>
</br> </div>
</br>