Javascript Angular.js至少需要一个复选框
如果这是一个复制品,我不会感到惊讶,但是我找不到任何简单的东西来满足我的需求 我所需要的只是要求用户至少选择一个复选框,但我对如何实现这一点感到困惑Javascript Angular.js至少需要一个复选框,javascript,angularjs,Javascript,Angularjs,如果这是一个复制品,我不会感到惊讶,但是我找不到任何简单的东西来满足我的需求 我所需要的只是要求用户至少选择一个复选框,但我对如何实现这一点感到困惑 <input type="checkbox" ng-model="myForm.first" /> First <br /> <input type="checkbox" ng-model="myForm.second" />Second <br /> <input ty
<input type="checkbox" ng-model="myForm.first" /> First <br />
<input type="checkbox" ng-model="myForm.second" />Second <br />
<input type="checkbox" ng-model="myForm.third" /> Third
首先
第二个
第三
首先
第二个
第三
HTML
JS fiddle:这不是正确使用所需的ng。您的示例可以在不需要ng的情况下实现,如:@britter太棒了!我尝试了这种方法,发现这需要我不选择任何复选框或选中所有复选框。如果未选中任何项,则所有项的ng required都为false,从而使验证成功。如果只选中了第一个复选框,则所有复选框都是必需的,这将导致验证失败。如果选中all,则需要all,并且验证成功。使用
!(myForm.first | | | | myForm.second | | | myForm.third)
似乎工作正常。如果您有20个复选框?这个解决方案只有在你只有几个的时候才是好的
<input type="checkbox" ng-model="myForm.first" ng-required="myForm.first || myForm.second || myForm.third" /> First <br />
<input type="checkbox" ng-model="myForm.second" ng-required="myForm.first || myForm.second || myForm.third"/>Second <br />
<input type="checkbox" ng-model="myForm.third" ng-required="myForm.first || myForm.second || myForm.third"/> Third
<div ng-app="myApp" ng-controller="myCrtl as myForm">
<input type="checkbox" ng-required="myForm.selectedOptions" ng-model="myForm.selectedOptions.first" ng-change="myForm.onCheckBoxSelected()" /> First <br />
<input type="checkbox" ng-required="myForm.selectedOptions" ng-model="myForm.selectedOptions.second" ng-change="myForm.onCheckBoxSelected()"/>Second <br />
<input type="checkbox" ng-required="myForm.selectedOptions" ng-model="myForm.selectedOptions.third" ng-change="myForm.onCheckBoxSelected()"/> Third<br/>
<span style="color:red;" ng-if="!myForm.selectedOptions ">Required</span>
</div>
angular.module('myApp',[])
.controller('myCrtl',function(){
var myForm=this;
myForm.onCheckBoxSelected=function(){
var flag=false;
for(var key in myForm.selectedOptions){
if(myForm.selectedOptions[key]){
flag=true;
}
}
if(!flag){
myForm.selectedOptions = undefined;
}
};
});