表单全选与取消全选

本文分析了如何实现HTML表单中的全选和取消全选功能。通过控制全选按钮的checked属性来影响所有复选框的状态,并在复选框被点击时动态检查是否所有复选框都已被选中,以保持全选按钮的正确状态。

分析:

1、全选和取消全选:让下方所有复选框的checked属性(选中状态)跟随全选按钮
2、下方的所有复选框选中全选按钮才选中,其中一个不选中全选按钮都不选中
        每次点击下面的某个复选框都要循环检查下方复选框是否都被选中
        flag保存全选按钮的选中状态

HTML结构:

<table border="1" cellspacing="" cellpadding="0">
			<tr>
				<th><input type="checkbox" id="selectAll"/>全选</th>
				<th>姓名</th>
				<th>性别</th>
				<th>年龄</th>
			</tr>
			<tr>
				<td><input type="checkbox"/></td>
				<td>张三</td>
				<td>男</td>
				<td>20</td>
			</tr>
			<tr>
				<td><input type="checkbox"/></td>
				<td>张三1</td>
				<td>男</td>
				<td>20</td>
			</tr>
			<tr>
				<td><input type="checkbox"/></td>
				<td>张三2</td>
				<td>男</td>
				<td>20</td>
			</tr>
		</table>

JS: 

<script type="text/javascript">
			// 获取单元格中的input
			let inputList=document.querySelectorAll('table tr td input')
			// 为全选绑定点击事件
			selectAll.addEventListener('click',function(){
				// 将全选复选框的选中状态保存在status中
				let status=this.checked
				// 遍历获取到的input
				for(let i=0;i<inputList.length;i++){
					// 为每个单元格的复选框的checked的属性赋值
					inputList[i].checked=status
				}
			})
			for(let i=0;i<inputList.length;i++){
				inputList[i].addEventListener('click',function(){
					let flag=true
					for(let j=0;j<inputList.length;j++){
						if(!inputList[j].checked){
							flag=false
							break
						}
					}
					selectAll.checked=flag
				})
			}
		</script>

以下是一个实现js表单全选取消全选的示例代码: HTML代码: ```html <form id="myForm"> <label><input type="checkbox" name="fruit" value="apple">苹果</label><br> <label><input type="checkbox" name="fruit" value="banana">香蕉</label><br> <label><input type="checkbox" name="fruit" value="orange">橙子</label><br> <label><input type="checkbox" name="fruit" value="watermelon">西瓜</label><br> <button type="button" onclick="selectAll()">全选</button> <button type="button" onclick="cancelAll()">取消全选</button> </form> ``` JavaScript代码: ```javascript function selectAll() { var checkboxes = document.getElementsByName("fruit"); for (var i = 0; i < checkboxes.length; i++) { checkboxes[i].checked = true; } } function cancelAll() { var checkboxes = document.getElementsByName("fruit"); for (var i = 0; i < checkboxes.length; i++) { checkboxes[i].checked = false; } } ``` 说明: 1. HTML代码中,给每个复选框元素添加了相同的name属性,表示它们属于同一组; 2. HTML代码中,分别添加了“全选”和“取消全选”两个按钮,并分别绑定了selectAll()和cancelAll()两个函数; 3. JavaScript代码中,分别实现了selectAll()和cancelAll()两个函数,用于全选取消全选; 4. JavaScript代码中,使用document.getElementsByName()方法获取所有name属性为“fruit”的复选框元素,并使用循环遍历每个元素,设置其checked属性为true或false,从而实现全选取消全选的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值