javascript - 多个复选框状态已选中
问题描述
我正在使用淘汰赛Js。有两个复选框。如果未选中任何复选框,则提交按钮将被禁用。可能会有 1 个复选框而不是 2 个复选框。所以我有这样的条件
if ((self.checkBox1() === true && self.checkBox2() === true) || ($("#checkbox2").length <= 0 && self.checkBox1() === true) || ($("#checkbox1").length <= 0 && self.checkBox2() === true)) {
$('.submit-btn').attr('disabled', false);
} else {
$('.submit-btn').attr('disabled', true);
}
return true;
}
这是我创建的Jsfiddle示例。
有没有更好的方法来做到这一点?
解决方案
$('.submit-btn').attr('disabled', ![...document.querySelectorAll('[type="checkbox"]')].every(cb=cb.checked)));
在这种情况下,我们检查页面上的所有复选框是否都被选中,一个返回真/假的过程,并使用该值直接更改按钮上的禁用状态。
如果同一页面上也存在非必需复选框的可能性,则对该querySelectorAll('[type="checkbox"]')
部分进行小幅改动即可处理:给所需的 CB 一个class="required"
( querySelectorAll('.required[type="checkbox"]'
),或定位其父容器 (querySelectorAll('#parent [type="checkbox"]'
推荐阅读
- python - pexpect - 如何使用事件传递密码
- python - 如何使 Python ssl 模块使用内存中的数据而不是传递文件路径?
- java - 如何动态地将一些用户定义的自定义参数直接插入到 MANIFEST?
- inheritance - Kotlin,如何在扩展加实现时克服意外覆盖
- git - git status -- 在宅基地 5.2 中忽略不显示所有文件
- javafx - 在 JavaFX 中保存和加载 ObservableList
- javascript - 如何在 JavaScript 中调用 Python 变量?
- r - R - 重新排序 NULL 列
- mysql - mysql 触发器中的 if else 块中的 Use Case 语句
- sql - 按非主键属性分组 min(Value) 并从同一行加入附加属性(使用原始 SQL 或 SQLalchemy)