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;
        }
   };

 });