【小案例】全选反选

1.html代码

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

2.JS代码

<script type="text/javascript">
	window.function(){
		//获取四个多选框love
		var loves=document.getElementsByName("love");
		//获取全选/全不选的多选框
		var checkedAllBox= document.getElementById("checkedAllBox");
		/* 
			全选按钮
				-点击按钮以后,四个多选框全都被选中
		*/
		 //1.checkedAllBtn
		 //为id为checkedAllBtn的按钮绑定一个单击相应函数
		 var checkedAllBtn=document.getElementById("checkedAllBtn");
		 checkedAllBtn.function(){
		 	//遍历loves
		 	for(var i=0;i<loves.length;i++){
		 		//设置四个多选框变成选中状态
		 		loves[i].checked=true;
		 	}
		 	checkedAllBox.checked=true;
		 };
		 /* 
		 	全不选
		 		-点击按钮后,四个按钮全变成不选的状态
		  */
		  //2.checkedNoBtn
		  var checkedNoBtn=document.getElementById("checkedNoBtn");
		  checkedNoBtn.function(){
		  	//遍历loves2
		  	for(var i=0;i<loves.length;i++){
		  		//设置四个多选框变成非选中状态
		  		loves[i].checked=false;
		  	}
		  	checkedAllBox.checked=false;
		  };
		  /* 
		  	反选
		  		-点击按钮后,四个按钮全变成反选的状态
		   */
		  var checkedRevBtn=document.getElementById("checkedRevBtn");
		  checkedRevBtn.function(){
		  for(var i=0;i<loves.length;i++){
		  	//将checkedAllBox设置为选中状态
			checkedAllBox.checked=true;
		 	//判断多选框状态
		 	/* if(loves[i].checked){
		 		//证明多选框已选中,则设置为没选中状态
		 		loves[i].checked=false;
		 		}
		 	else{
		 		loves[i].checked=true
		 		} */
		 	loves[i].checked=!loves[i].checked;
		 	if(!loves[i].checked){
						//一旦进入判断,则证明不是全选状态
						//将checkedAllOox设置为选中状态
						checkedAllBox.checked=false;
						
						//一旦进入判断,则已经得出结果,不用再 执行循环
				}
		 	};
					
					//判断四个多选框是否全选
					//只要有一个没选中就不是全选
					
					}
		  /* 
		  	提交按钮:
		  		-点击按钮以后,将所有的选中的多选框的value属性值弹出
		   */
		   var sendBtn=document.getElementById("sendBtn");
		   sendBtn.function(){
		   	for(var i=0;i<loves.length;i++){
		   		var yourchoice=document.getElementById("yourchoice");
		   		//判断多选框是否被选中
		  		if(loves[i].checked){
		  			alert(loves[i].value);
		  		}
		  		
		  		
		  	}
		   
		   };
		//当checkedAllBox
		/* 
			全选/全不选多选框
				-当它选中时,其他的也选中,当它取消时其余的也取消
				
			在事件响应函数中,响应函数是给谁 绑定的this就是谁
			 */
		//为checkedAllBox绑定单击响应函数
		var checkedAllBox= document.getElementById("checkedAllBox");
		checkedAllBox.function(){
			
			//设置多选框的选中状态
			for(var i=0;i<loves.length;i++){
				//loves[i].checked=checkedAllBox.checked;\
				loves[i].checked=this.checked;
			}
		};
		/*  
			如果四个多选框全部选中,则checkedAllBox也应被选中
			如果四个多选框都没被选中,则checkedAllBox也不该被选中
		*/
		//为四个多选框分别绑定点击响应函数
		for(var i=0;i<loves.length;i++){
					loves[i].function(){
					//将checkedAllBox设置为选中状态
					checkedAllBox.checked=true;
					for(var j=0;j<loves.length;j++){
					//判断四个多选框是否全选
					//只要有一个没选中就不是全选
					if(!loves[j].checked){
						//一旦进入判断,则证明不是全选状态
						//将checkedAllOox设置为选中状态
						checkedAllBox.checked=false;
						
						//一旦进入判断,则已经得出结果,不用再 执行循环
						break;
					}
					}
				};
			}
		 
	};
</script>

3.图片展示
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值