19-js做全选框的功能,点击全选再次点击取消

本文介绍如何使用JavaScript实现全选和取消全选的功能。通过监听全选按钮的点击事件,可以轻松地控制页面上的所有复选框状态。点击全选按钮将勾选所有复选框,再次点击则取消所有选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript">

	function checkAll(allNode){
		//找到所有的的选项
		var items = document.getElementsByName("item");
		//找到全选按钮的对象
		//var allNode = document.getElementsByName("all")[0];
		for(var i = 0 ; i<items.length ; i++){
			items[i].checked = 	allNode.checked;
		}
	}
	
	
	function getSum(){
		var items = document.getElementsByName("item");
		var sum = 0;
		for(var i = 0 ; i<items.length ; i++){
			if(items[i].checked){
				sum += parseInt(items[i].value);
			}	
		}	
		var spanNode = document.getElementById("sumid");
		spanNode.innerHTML = ("&nbsp;&nbsp;&nbsp;&yen;"+sum).fontcolor("green");
	}
	


</script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>
	<div>商品列表</div>
        <input type="checkbox" name="item" value="3000" />笔记本电脑3000元<br />
        <input type="checkbox" name="item" value="1800"  />笔记本电脑1800元<br />
        <input type="checkbox" name="item" value="300"  />笔记本电脑300元<br />
        <input type="checkbox" name="item" value="3000"  />笔记本电脑3000元<br />
        <input type="checkbox" name="item" value="3000"  />笔记本电脑3000元<br />
        <input type="checkbox" name="item" value="3000"  />笔记本电脑3000元<br />
        <input type="checkbox" name="all" onclick="checkAll(this)"  /> 全选<br />
        <input type="button" value="总金额:" onclick="getSum()" /><span id="sumid"></span>
</body>
</html>

 

### 如何在 Element UI 的 `el-table` 组件中禁用或阻止全选功能 #### 方法一:通过设置复选框的选择逻辑 可以通过自定义 `selectable` 函数来控制每一行是否可以被选择。如果所有行都被设置为不可选,则全选按钮会自动失效。 ```javascript // 自定义 selectable 函数,返回 false 表示该行不可选 function selectable(row, rowIndex) { return false; } ``` 此方法适用于场景中需要动态判断某些特定条件下不允许用户勾选任何项的情况[^2]。 --- #### 方法二:使用自定义表头替代默认全选框 通过覆盖默认的表头模板,在其中放置一个禁用状态的 Checkbox 来代替原有的全选功能。 ```vue <el-table :data="tableData" border> <el-table-column width="50" align="center"> <!-- 替换默认全选 --> <template slot="header"> <el-checkbox disabled /> </template> <template slot-scope="scope"> <el-checkbox v-model="scope.row.checked" /> </template> </el-table-column> </el-table> ``` 这种方法能够完全移除原生全选行为并替换为静态展示效果,适合于需求明确不需要支持全选操作的情形[^3]。 --- #### 方法三:利用 CSS 控制全选框样式 借助 `header-cell-class-name` 属性向指定列头部单元格应用额外类名,并结合 CSS 设置其内部 checkbox 不可用外观。 ```html <!-- 配合 header-cell-class-name 使用 --> <el-table :data="tableData" @header-cell-class-name="handleHeaderCellClassName"> <el-table-column type="selection"></el-table-column> </el-table> <script> export default { methods: { handleHeaderCellClassName({ row, column, rowIndex, columnIndex }) { const allRowsDisabled = this.tableData.every(item => !item.selectable); if (column.type === 'selection' && allRowsDisabled) { return 'all-disabled'; // 如果所有行都不可选则添加特殊 class } }, }, }; </script> <style scoped> .all-disabled .cell ::v-deep(.el-checkbox__input) { cursor: not-allowed; pointer-events: none; /* 禁止交互 */ } .all-disabled .cell ::v-deep(.el-checkbox__inner):hover { border-color: gray; /* 修改悬停颜色 */ } </style> ``` 上述代码片段展示了如何基于业务逻辑判定何时应该隐藏或者冻结整个表格顶部多选项开关的行为模式[^4]。 --- ### 结论 以上三种策略各有优劣,开发者应依据实际项目背景选取最贴切的一种加以实施: 1. **可维护性强** —— 若仅需简单屏蔽部分记录参与集体动作的能力,推荐采用 Method One; 2. **界面定制灵活度高** —— 对于希望彻底改变原有布局结构以适应复杂视觉呈现的要求来说,Method Two 更加合适; 3. **兼顾性能优化与用户体验一致性考量下** ,Method Three 提供了一种优雅解决方案既保留了基础框架特性又满足特殊情况下的例外处理需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值