全选/全不选/反选练习

97 阅读1分钟

1.png

<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<title></title>
		<style>
			*{
				padding: 0;
				margin: 10px auto;
			}
			body{
				text-align: center;
			}
		</style>
		<script>
			window.onload = function() {
				//获取四个多选框items
				var items = document.getElementsByName("items");
				//获取checkedAllBox
				var checkedAllBox = document.getElementById("checkedAllBox");
				//1.#checkedAllBtn
				//为id为checkedAllBtn的按钮绑定一个单击响应函数
				var checkedAllBtn = document.getElementById("checkedAllBtn");
				checkedAllBtn.onclick = function() {
					//遍历items
					for(var i = 0; i < items.length; i++) {
						//设置四个多选框为选中状态
						items[i].checked = true;
					}
					//将全选/全不选设置为选中
					checkedAllBox.checked = true;
				};

				//2.#checkedNoBtn
				//为id为checkedNoBtn的按钮绑定一个单击响应函数
				var checkedNoBtn = document.getElementById("checkedNoBtn");
				checkedNoBtn.onclick = function() {
					//遍历items
					for(var i = 0; i < items.length; i++) {
						//设置四个多选框为全不选中状态
						items[i].checked = false;
					}
					//将全选/全不选设置为不选中
					checkedAllBox.checked = false;
				};

				//3.#checkedRevBtn
				//为id为checkedRevBtn的按钮绑定一个单击响应函数
				var checkedRevBtn = document.getElementById("checkedRevBtn");
				checkedRevBtn.onclick = function() {
					//将checkedAllBox设置为选中状态
					checkedAllBox.checked = true;
					//遍历items
					for(var i = 0; i < items.length; i++) {
						//设置四个多选框为反选状态
						items[i].checked = !items[i].checked;
						if(!items[i].checked) {
							//一旦进入判断,则表明不是全选状态s
							//将checkedAllBox设置为没选中状态
							checkedAllBox.checked = false;
						}
					}
				};

				//4.sendBtn
				//为id为sendBtn的按钮绑定一个单击响应函数
				var sendBtn = document.getElementById("sendBtn");
				sendBtn.onclick = function() {
					//遍历items
					for(var i = 0; i < items.length; i++) {
						//判断多选框是否选中
						if(items[i].checked) {
							alert(items[i].value);
						}
					}
				};

				//5.checkedAllBox 选中时全选,取消时也全取消
				//为id为checkedAllBox的按钮绑定一个单击响应函数
				checkedAllBox.onclick = function() {
					//设置多选框的选中状态
					for(var i = 0; i < items.length; i++) {
						items[i].checked = this.checked;
					}
				};
				//6.items
				//为四个多选框分别绑定单击响应函数
				for(var i = 0; i < items.length; i++) {
					items[i].onclick = function() {
						//将checkedAllBox设置为选中状态
						checkedAllBox.checked = true;
						for(var j = 0; j < items.length; j++) {
							//判断四个多选框是否全选,只要有一个没选中就不是全选
							if(!items[j].checked) {
								//一旦进入判断,则表明不是全选状态
								//将checkedAllBox设置为没选中状态
								checkedAllBox.checked = false;
								//一旦进入判断,则已经得出结果,不用再继续执行循环
								break;
							}
						}
					};
				}
			};
		</script>
	</head>

	<body>
		<form method="post" action="">
			你爱好的运动是?<input type="checkbox" id="checkedAllBox" />全选/全不选
			<br />
			<input type="checkbox" name="items" value="足球" />足球
			<input type="checkbox" name="items" value="篮球" />篮球
			<input type="checkbox" name="items" value="羽毛球" />羽毛球
			<input type="checkbox" name="items" value="乒乓球" />乒乓球
			<br />
			<input type="button" id="checkedAllBtn" value="全  选" />
			<input type="button" id="checkedNoBtn" value="全不选" />
			<input type="button" id="checkedRevBtn" value="反  选" />
			<input type="button" id="sendBtn" value="提  交" />

		</form>
	</body>

</html>