虽然互联网上有很多问题的解决方案。但没有一个对我有用。else 语句总是被执行。如果选中任何单选按钮,则应该执行 if 语句。但它没有发生.这是代码-
.html
<div ng-repeat="question in liveCtrl.questions>
<input type="radio" name="answerGroup" value="0" id="answerGroup_0">
{{question.optionA}
<input type="radio" name="answerGroup" value="1" id="answerGroup_1">
{{question.optionB}
<input type="radio" name="answerGroup" value="2" id="answerGroup_2">
{{question.optionC}
<input type="radio" name="answerGroup" value="3" id="answerGroup_3">
{{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"> {{question.optionA}
<input type="radio" name="answerGroup" value="1" id="answerGroup_1"> {{question.optionB}
<input type="radio" name="answerGroup" value="2" id="answerGroup_2"> {{question.optionC}
<input type="radio" name="answerGroup" value="3" id="answerGroup_3"> {{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/