Checkbox 级联 选择

什么时 checkbox 级联

就是,当你点击一个 主 checkbox ,它的从属 checkbox 根据 checkbox 全选或反选

具体效果如下图

image

具体实现很简单

引入 JQuery

<script src="https://cdn.bootcss.com/jquery/2.2.0/jquery.min.js"></script>

创建一个 联动的 checkbox table

<table class="table table-bordered table-hover">
		<thead>
			<tr>
				<th><input type="checkbox" id="check-all"></th>
				<th>姓名</th>
				<th>QQ</th>
				<th>数据</th>
			</tr>
		</thead>
		<tr>
			<td><input type="checkbox" name="check-item" data-id="1"></td>
			<td>zZ爱吃菜</td>
			<td>1013269528</td>
			<td>1</td>
		</tr>
		<tr>
			<td><input type="checkbox" name="check-item" data-id="2"></td>
			<td>zZ爱吃菜</td>
			<td>1013269528</td>
			<td>2</td>
		</tr>
		<tr>
			<td><input type="checkbox" name="check-item" data-id="3"></td>
			<td>zZ爱吃菜</td>
			<td>1013269528</td>
			<td>3</td>
		</tr>
		<tr>
			<td><input type="checkbox" name="check-item" data-id="4"></td>
			<td>zZ爱吃菜</td>
			<td>1013269528</td>
			<td>4</td>
		</tr>
	</table>

给 父 checkbox 绑定事件

$(function(){
			$("#check-all").on('change',function(){
				if(this.checked){
					// 主 checked 选中: 
					$("input[name='check-item']").each(function(){
						this.checked = true
					})
				} else {
					// 主 checked 不选中: 
					$("input[name='check-item']").each(function(){
						this.checked = false
					})
				}
			});
			$("#btnGetData").on('click',function(){
				var data = "";
				$("input[name='check-item']").each(function(){
					if(this.checked){
						data = (data)? data+'-'+$(this).data('id'):$(this).data('id');
					}
				})
				$("#inputData").val(data);
			})
		})

主要知识点: 如果通过 JQuery 的选择器选择 子checkbox 然后遍历修改选中或不选中状态。

最后附上完整代码

<!DOCTYPE html>
<html>
<head>
	<title>checkbox 联动</title>
	<link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
	<script src="https://cdn.bootcss.com/jquery/2.2.0/jquery.min.js"></script>
</head>
<body>
	<table class="table table-bordered table-hover">
		<thead>
			<tr>
				<th><input type="checkbox" id="check-all"></th>
				<th>姓名</th>
				<th>QQ</th>
				<th>数据</th>
			</tr>
		</thead>
		<tr>
			<td><input type="checkbox" name="check-item" data-id="1"></td>
			<td>zZ爱吃菜</td>
			<td>1013269528</td>
			<td>1</td>
		</tr>
		<tr>
			<td><input type="checkbox" name="check-item" data-id="2"></td>
			<td>zZ爱吃菜</td>
			<td>1013269528</td>
			<td>2</td>
		</tr>
		<tr>
			<td><input type="checkbox" name="check-item" data-id="3"></td>
			<td>zZ爱吃菜</td>
			<td>1013269528</td>
			<td>3</td>
		</tr>
		<tr>
			<td><input type="checkbox" name="check-item" data-id="4"></td>
			<td>zZ爱吃菜</td>
			<td>1013269528</td>
			<td>4</td>
		</tr>
	</table>
	<button class="btn btn-primary" id="btnGetData">获取选中的数据</button>
	<input type="text" id="inputData" class="form-control">
	<script type="text/javascript">
		$(function(){
			$("#check-all").on('change',function(){
				if(this.checked){
					// 主 checked 选中: 
					$("input[name='check-item']").each(function(){
						this.checked = true
					})
				} else {
					// 主 checked 不选中: 
					$("input[name='check-item']").each(function(){
						this.checked = false
					})
				}
			});
			$("#btnGetData").on('click',function(){
				var data = "";
				$("input[name='check-item']").each(function(){
					if(this.checked){
						data = (data)? data+'-'+$(this).data('id'):$(this).data('id');
					}
				})
				$("#inputData").val(data);
			})
		})
	</script>
</body>
</html>
Last Updated: 8/3/2019, 11:39:58 PM