JavaScript学习笔记—全选、取消、反选、提交

<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>JS全选、取消、反选、提交</title>
<script>
window.onload = function(){
// 获取全选按钮
const allBtn = document.getElementById("all");
// 获取全选复选框
const checkAllBox = document.getElementById("check-all");
// 获取取消按钮
const noBtn = document.getElementById("no");
// 获取反选按钮
const reverseBtn = document.getElementById("reverse");
// 获取4个爱好复选框
const hobbies = document.getElementsByName("hobby");
// 为全选按钮绑定单击响应函数
allBtn.onclick = function(){
// 将4个复选框设置为选中状态
for(let i = 0; i < hobbies.length; i++){
hobbies[i].checked = true;
}
// 将全选复选框设置为选中状态
checkAllBox.checked = true;
};
// 为取消按钮绑定单击相应函数
noBtn.onclick = function(){
// 将4个复选框设置为取消状态
for(let i = 0; i < hobbies.length; i++){
hobbies[i].checked = false;
}
// 将全选复选框设置为取消状态
checkAllBox.checked = false;
};
// 为反选按钮绑定单击相应函数
reverseBtn.onclick = function(){
for(let i = 0; i < hobbies.length; i++){
hobbies[i].checked = !hobbies[i].checked;
}
// 获取所有选中的checkbox
const checkedBox = document.querySelectorAll("[name=hobby]:checked");
// 判断hobbies是否全选,如果全选了 全选复选框 设置为选中状态,否则设置为取消状态
if (hobbies.length === checkedBox.length) {
checkAllBox.checked = true;
} else {
checkAllBox.checked = false;
}
};
// 为全选复选框绑定单击相应函数
checkAllBox.onclick = function(){
for(let i = 0; i < hobbies.length; i++){
// 在事件的响应函数中,响应函数绑定给谁 this就是谁(箭头函数除外)
hobbies[i].checked = this.checked;
}
};
// 使全选checkbox和四个爱好checkbox同步
for(let i = 0; i < hobbies.length; i++){
hobbies[i].onclick = function(){
// 获取所有爱好复选框 选中的checkbox
const checkedBoxs = document.querySelectorAll("[name=hobby]:checked");
// 判断hobbies是否全被选中
if(hobbies.length === checkedBoxs.length){
checkAllBox.checked = true;
}else{
checkAllBox.checked = false;
}
};
}
// 提交按钮
const sendBtn = document.getElementById("send");
sendBtn.onclick = function(){
for (let i = 0; i < hobbies.length; i++) {
hobbies[i].checked && alert(hobbies[i].value);
}
};
};
</script>
</head>
<body>
<div>
<form action="#">
<div>
请选择你的爱好:
<input type="checkbox" id="check-all" /> 全选
</div>
<div>
<input type="checkbox" name="hobby" value="乒乓球" /> 乒乓球
<input type="checkbox" name="hobby" value="篮球" /> 篮球
<input type="checkbox" name="hobby" value="羽毛球" /> 羽毛球
<input type="checkbox" name="hobby" value="足球" /> 足球
</div>
<div>
<button type="button" id="all">全选</button>
<button type="button" id="no">取消</button>
<button type="button" id="reverse">反选</button>
<button type="button" id="send">提交</button>
</div>
</form>
</div>
</body>
</html>
posted @   程序员张3  阅读(221)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示