js完成 全选,反选,全不选

表单简单练习

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		
		<form action="" method="post">
			你爱好的运动是? <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>
	<script type="text/javascript">
		var cs = 0;
		console.time(cs)
		var checkedAllBtn = document.getElementById('checkedAllBtn');
		var items = document.getElementsByName('items'); 
		// 全选
		checkedAllBtn.onclick = function(){
			// 获取四个多选框
				console.log(items[2])
			 for(let i=0; i<items.length; i++){
				 items[i].checked=true;
			 }
			 checkedAllBox.checked=true;
		} 
		//全不选
		var checkedNoBtn = document.getElementById('checkedNoBtn');
		checkedNoBtn.onclick = function(){
			for(let i=0; i<items.length; i++){
				items[i].checked=false;
			}
			 checkedAllBox.checked=false;
		}
		//反选 未完成
		var checkedRevBtn = document.getElementById('checkedRevBtn');
		checkedRevBtn.onclick = function(){
			checkedAllBox.checked=true
			// 遍历每一个check
			for(let i=0; i<items.length; i++){
				//较复杂
				// if (items[i].checked == true) {
				// 	items[i].checked = false;
				// } else{
				// 	items[i].checked = true;
				// }
				//取反 简化版
				items[i].checked = !items[i].checked;
				
				if(!items[i].checked){
					checkedAllBox.checked=false;
				}
			}
		}
		//全选/全不选
		var checkedAllBox = document.getElementById('checkedAllBox');
		checkedAllBox.onclick = function(){
			for(let i=0; i<items.length; i++){
				// if (checkedAllBox.checked == true) {
				// 	items[i].checked = true;
				// } else{
				// 	items[i].checked = false;
				// }
				items[i].checked = this.checked;
			}
		}
		for(let i=0;i<items.length;i++){
			items[i].onclick = function(){
				checkedAllBox.checked=true
				for(let j=0; j<items.length;j++){
					if(!items[j].checked){
						checkedAllBox.checked=false;
						break;
					}
				}
			}
		}
		console.timeEnd(cs)
	</script>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值