javascript - 检查所有单选按钮是否为真
问题描述
我有 8 个(4 个是 + 4 个否)单选按钮,最后一对按钮是“以上所有(是/否)”。如何检查是否所有收音机 (1-3) YES 都被选中,以便我可以将最后一个按钮设置为 YES?
- 是 否 考试 A
- 是 否 考试 B
- 是 否 考试 C
- 是 否 以上都是
这是我糟糕的尝试(工作),但我知道它写得不好
//EXAMS
<input type="radio" class="yes-radio" name=""> YES
<input type="radio" class="no-radio" name=""> NO
..
..
//ALL OF THE ABOVE
<input type="radio" class="yes-radio-all" name=""> YES
<input type="radio" class="no-radio-all" name=""> NO
//inside click event
var totalyes = $('.yes-radio').length;
var totalno = $('.yes-radio').length;
var yes = $('.yes-radio:checked').length;
var no = $('.no-radio:checked').length;
if (totalyes == yes) {
$('.yes-radio-all').attr('checked', true);
}
if (totalno == no) {
$('.no-radio-all').attr('checked', true);
}
我简化了而不是实际代码,但你会明白我的意思。我认为必须有某种循环或 foreach 可以解决我的问题。
谢谢!
解决方案
您可以将 jQuery 选择转换为数组,然后使用标准every()
方法。
if ($('.yes-buttons').get().every(button => button.checked)) {
$('.yes-radio-all').prop('checked', true);
} else if ($('.no-buttons').get().every(button => button.checked)) {
$('.no-radio-all').prop('checked', true);
}
推荐阅读
- java - Spring Integration - 文件写入操作的服务参与者抛出错误
- java - DateFormat.format 输出中未出现毫秒数
- java - word2vec 中是否有类似单词的波兰语实现?
- string-comparison - 创建比较字符串函数
- android - 有没有办法通过警报对话框的按钮完成当前活动?
- java - XML SOAP 信封与 JAXB 一起为空
- java - 如何通过命令行使用 TestNG 和标签触发 Cucumber 并行测试执行?
- objective-c - 如何将 id 类型的对象转换或设置为另一种类型,如 UIImageView 或 UIView
- mongodb - 如果我使用提示,为什么 Mongodb 只会使用我的索引
- python - 为什么绘图和保存的图像(字体大小、线宽)之间存在差异?