Javascript启用禁用复选框,单击,一次只选择一个
javascript enable disabled checkbox on click and select only one at a time
我动态生成复选框与id像chkBox100等和onClick功能。
我要做的是
- 一次只能选中一个复选框
- 如果前一个复选框被选中,另一个复选框被选中,则取消前一个复选框。
- 如果我点击选中的复选框,它应该取消选中。
我想在没有jquery或任何其他库的标准javascript中做。
请帮忙,我将感激你的帮助。以下是目前为止的代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title> New Document </title>
<script type="text/javascript">
function toggle(chkBox)
{
if (chkBox.checked)
{
chkBox.checked = false;
}
else
{
chkBox.checked = true;
}
// only select one at a time.
}
</script>
</head>
<body>
<form id="myForm" name="myForm">
<input type="checkbox" id="chkBox100" onClick="toggle(this);">
<input type="checkbox" id="chkBox121" onClick="toggle(this);">
<input type="checkbox" id="chkBox1180" onClick="toggle(this);">
</form>
</body>
</html>
不使用库,我猜您可以执行以下操作,如果我理解正确的话,它似乎可以工作。
小提琴
您缺少的代码将取消选择其余代码。为此,您应该首先获得所有复选框的列表,然后取消选中所有复选框。然后,选择用户点击的那个。
function toggle(chkBox) {
checkboxes = document.getElementById("myForm").childNodes;
var isChecked = chkBox.checked; //this just changed, so it really is whether the box wasn't checked beforehand.
for (var i = 0; i < checkboxes.length; i++) {
checkboxes[i].checked = false; //clear all of them
}
if (isChecked) {
chkBox.checked = true; //if the original one wasn't checked, check it
}
}
另一种选择是使用单选按钮,它自动具有您想要的前两个属性,但不具有第三个属性,尽管您可以像RobG说的那样修复这个问题,使用另一个选项说"以上皆非"。
您是否考虑过使用带有默认选中按钮的单选按钮,这实际上是"无选择"选项?不需要javascript
<input type="radio" name="rb" value="zero">Zero
<br>
<input type="radio" name="rb" value="one">One
<br>
<input type="radio" name="rb" value="two">Two
<br>
<input type="radio" name="rb" value="None" checked>None of the above
相关文章:
- 根据Angular.JS上一次的内容禁用选择
- 在一组复选框中,一次只允许选择一个
- Jquery选择选项并获取只工作一次的更改值(页面加载时)
- 我如何可以忽略以前的选择,只写最后一次选择
- 在angularjs中一次选择一个项目
- 一次选择一个图像
- 无法在一次选择中选择多个值
- 如何使用 jQuery 选择多个文件.多文件.js插件?使用单个关闭按钮一次选择多个文件
- Javascript 一次选择所有单选按钮
- Javascript一次选择一行
- 使用下拉列表一次选择一个图表
- 在“选择将打开选项卡更改为新url”上.但是,如果在下一次选择更改时关闭了选项卡,该怎么办
- 使用一个文件元素上传多个文件(没有多个选项).并一次选择一个文件
- Highcharts一次选择多个点
- 如何将一次选择的更改事件的数据附加到第二次选择
- Jquery一次选择所有选中和选中的元素
- 如何一次选择数组中的所有项目,并为它们添加类
- 在angularjs中,如何在不使用单选按钮的情况下一次选择一个复选框
- 一次选择多个数组元素
- 使复选框可以像单选按钮一样一次选择一个