javascript - ng-repeat 中的单选按钮

标签 javascript jquery angularjs

虽然互联网上有很多问题的解决方案。但没有一个对我有用。else 语句总是被执行。如果选中任何单选按钮,则应该执行 if 语句。但它没有发生.这是代码-

.html

<div  ng-repeat="question in liveCtrl.questions>
  <input type="radio" name="answerGroup" value="0" id="answerGroup_0">&nbsp;
  {{question.optionA}
  <input type="radio" name="answerGroup" value="1" id="answerGroup_1">&nbsp;
  {{question.optionB}
  <input type="radio" name="answerGroup" value="2" id="answerGroup_2">&nbsp;
  {{question.optionC}
  <input type="radio" name="answerGroup" value="3" id="answerGroup_3">&nbsp;
  {{question.optionD}
  <button data-id="{{liveCtrl.currentPage+1}}" class="subques btn btn-lg btn-
  secondary">Save & Next</button>

</div>

.js

$(document).on('click','.subques',function(){
        var check = true;
        $("input:radio").each(function(){
            if($("input[name='answerGroup']:checked").length == 0){
                check = false;
            }
        });

        if(check){
           var bid=$(this).data('id');
           $("#"+bid).addClass('box-color');
          }else{
            console.log("unchecked");
          }
    });

最佳答案

您的代码按预期工作。

几处更正!

  • 你在这里漏掉了一个引号 "liveCtrl.questions 中的问题>

  • 您不必遍历 $("input:radio")。只需 $("input[name='answerGroup']:checked").length 就足以检查是否选中任何单选按钮

$(document).on('click', '.subques', function() {
  var check = true;

  if ($("input[name='answerGroup']:checked").length == 0) {
    check = false;
  }

  if (check) {
    var bid = $(this).data('id');
    console.log("checked");
  } else {
    console.log("unchecked");
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<div ng-repeat="question in liveCtrl.questions">
  <input type="radio" name="answerGroup" value="0" id="answerGroup_0">&nbsp; {{question.optionA}
  <input type="radio" name="answerGroup" value="1" id="answerGroup_1">&nbsp; {{question.optionB}
  <input type="radio" name="answerGroup" value="2" id="answerGroup_2">&nbsp; {{question.optionC}
  <input type="radio" name="answerGroup" value="3" id="answerGroup_3">&nbsp; {{question.optionD}
  <button data-id="{{liveCtrl.currentPage+1}}" class="subques btn btn-lg btn-
  secondary">Save & Next</button>

</div>

关于javascript - ng-repeat 中的单选按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48595458/

相关文章:

javascript - 如何通过ajax调用点击jstree最后一个 Node 填充数据

javascript - 如何在 Angular 中使用 css 类进行操作

javascript - 如何在 PWA 中使用动态 list 文件?

JQuery 数据选择器未使用 .data 更新

javascript - 在 Internet Explorer 中显示/隐藏选择选项组选项

javascript - 如何更改 html 文件中的 html 更改?

javascript - Angular 用户界面路由器状态问题

javascript - Angular $resource : Unknown Provider error, 加载依赖和 Angular 元素

javascript - 在 D3 树布局中设置链接的最大长度

javascript - Chrome 中奇怪的显示/隐藏行为