【问题标题】:Enable Submit Button If All Checkboxes Are Checked如果选中所有复选框,则启用提交按钮
【发布时间】:2015-10-22 15:32:59
【问题描述】:

我正在以列表的形式从 Json 表中获取我的数据。只有在选中所有复选框时才应启用提交按钮。 这是我的代码。 html:

 <ol>
 <li  ng-repeat='box in Box.json'  id='box' >
 <input type="checkbox"  value='{{box.id}}'>{{box.name}}</li>
 </ol>

//Javascript:

 $scope.check=function(){
     return ($scope.check1 && $scope.check2 && $scope.check3)   
  }

以上范围变量是每个的ng-models

  • 。但是由于使用 ng-repeat 将数据显示在列表中,我无法为表中的每一行放置 ng-model。因此,return 语句无效,即使检查了所有复选框,提交按钮也是未启用。我不应该使用 Jquery。请帮助

    Output

  • 【问题讨论】:

      标签: javascript angularjs


      【解决方案1】:

      我只是直接调整您的 box 对象,然后将您的对象数组减少为布尔值,以查看是否选中了所有复选框。

       <ol>
         <li  ng-repeat='box in Box.json'  id='box'>
           <input type="checkbox" ng-model="box.checked"> {{box.name}}
         </li>
       </ol>
      

      还有你的检查功能。

      $scope.check=function(){
        return $scope.Box.json.reduce(function(prev,value){
          if(!prev) return false;
          return value.checked && true || false;
        },true);
      }
      

      【讨论】:

        【解决方案2】:

        将此添加到您的 btn

        ng-disabled="!check"
        

        【讨论】:

        • 请考虑编辑您的帖子,以添加更多关于您的代码的作用以及它为何能解决问题的说明。一个大部分只包含代码的答案(即使它正在工作)通常不会帮助 OP 理解他们的问题。
        猜你喜欢
        • 2012-04-18
        • 2014-05-13
        • 1970-01-01
        • 2019-05-23
        • 2020-09-14
        • 2014-01-08
        • 2015-12-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多