预计效果
实现一组复选框的全选、反选、取消选中的功能,界面如下图
代码
该代码可在我的GitHub中找到,链接在此
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>一组复选框的全选、取消、反选</title>
<script type="text/javascript">
// 全选函数
function selectAll() {
var chks = document.getElementsByName("chkHobby");
for (var i = 0; i < chks.length; i++)
{
chks[i].checked = true;
}
}
// 取消函数
function selectNone() {
var chks = document.getElementsByName("chkHobby");
for (var i = 0; i < chks.length; i++)
{
chks[i].checked = false;
}
}
// 反选函数
function selectReverse() {
var chks = document.getElementsByName("chkHobby");
for (var i = 0; i < chks.length; i++)
{
chks[i].checked = !chks[i].checked;
}
}
</script>
</head>
<body>
<form id="frm_1">
<fieldset>
<legend>爱好</legend>
<input type="checkbox" name="chkHobby" value="internet" />上网
<input type="checkbox" name="chkHobby" value="reading" />阅读
<input type="checkbox" name="chkHobby" value="games" />游戏
<input type="checkbox" name="chkHobby" value="sports" />运动
<input type="checkbox" name="chkHobby" value="shopping" />购物
</fieldset>
<input type="button" name="btn" value="全选" onclick="selectAll()" />
<input type="button" name="btn" value="反选" onclick="selectReverse()" />
<input type="button" name="btn" value="取消" onclick="selectNone()" />
</form>
</body>
</html>
关键代码解释
<input type="checkbox" />
是带有一个预选定复选框的 HTML 表单
它有一个checked
属性,这个属性表示是否选定,当这个属性为true
时,框表示为选定状态,当这个属性为false
时,框表示为未选定状态
将每一个<input type="checkbox" />
设定一个相同的name
属性,在 JavaScript 代码中,通过document.getElementsByName()
的方法,获取到每一个<input type="checkbox" />
- 在全选函数中,将每一个
<input type="checkbox" />
的checked
属性变为true
- 在取消函数中,将每一个
<input type="checkbox" />
的checked
属性变为false
- 在反选函数中,将每一个
<input type="checkbox" />
的checked
属性变为当前该属性值的相反值
结果展示
点击上网、阅读,结果如下图
再次点击可以取消选定,点击反选按钮,结果如下图
点击全选按钮,结果如下图
点击取消按钮,结果如下图