javascript - 如何让我的复选框启用/禁用 onclick?
问题描述
我正在尝试获取复选框,在这种情况下,标题为“男性”和“女性”,以允许选择一个选项。即,单击男性,女性复选框变灰/禁用,取消选中男性,女性复选框重新启用并能够单击,这随后将禁用男性复选框选项。
我已经能够选中任何一个框并使用“onClick”内联禁用另一个框。但是,一旦另一个复选框禁用,当我取消选中所选框时,它就会保持禁用状态。
<label>
<input type="checkbox" onClick="hideFemaleCheckBox()" value="male" id="maleCheckBox">
Male
</label>
<label>
<input type="checkbox" onClick="hideMaleCheckBox()" value="female" id="femaleCheckBox">
Female<br><br>
</label>
..
function hideFemaleCheckBox() {
let maleCheckBox = document.getElementById('maleCheckBox');
let femaleCheckBox = document.getElementById('femaleCheckBox');
if(maleCheckBox.checked == true) {
femaleCheckBox.setAttribute("disabled", "true");
} else if (maleCheckBox.checked == false) {
femaleCheckBox.setAttribute("disabled", "false");
}
}
function hideMaleCheckBox() {
let maleCheckBox = document.getElementById('maleCheckBox');
let femaleCheckBox = document.getElementById('femaleCheckBox');
if(femaleCheckBox.checked == true) {
maleCheckBox.setAttribute("disabled", "true");
} else if (femaleCheckBox.checked == false) {
maleCheckBox.setAttribute("disabled", "false");
}
}
任何帮助来完成这项工作将不胜感激。我还在学习中,谢谢!
解决方案
一旦用户取消选中男性复选框,您可以删除女性上的禁用属性。见下文:
function hideFemaleCheckBox() {
let maleCheckBox = document.getElementById("maleCheckBox");
let femaleCheckBox = document.getElementById("femaleCheckBox");
if (maleCheckBox.checked == true) {
femaleCheckBox.setAttribute("disabled", "true");
} else if (maleCheckBox.checked == false) {
// change here | Use removeAttribute
femaleCheckBox.removeAttribute("disabled");
}
}
function hideMaleCheckBox() {
let maleCheckBox = document.getElementById("maleCheckBox");
let femaleCheckBox = document.getElementById("femaleCheckBox");
if (femaleCheckBox.checked == true) {
maleCheckBox.setAttribute("disabled", "true");
} else if (femaleCheckBox.checked == false) {
// change here | Use removeAttribute
maleCheckBox.removeAttribute("disabled");
}
}
使用 removeAttribute 函数删除禁用的属性。
推荐阅读
- javascript - 如何获取连接的mxgraph之间的父子关系
- python - Django 文件断言
- dart - 如何在 Dart 中进行嵌套的 httpClient 调用、多个异步/等待
- microsoft-graph-api - 如何使用 Office 365 Graph API 使用别名电子邮件地址发送邮件
- python - 如何将 fastai 图像从 open_image() 格式转换为 opencv?
- sql - 使用任何最新的 N 个标签获取所有行
- sql - 在 Teradata 中连接表时出现语法错误
- react-native - 使用 ListView reactNative 搜索过滤器
- android - 尝试在空对象引用上调用虚函数
- gitlab - Gitlab CI:从单个提交创建多个构建