Demo-取checkbox选中个数

本文介绍了一个简单的HTML页面示例,该页面使用jQuery来获取已选中的复选框值并将其存储到数组中。此外,还展示了如何通过按钮点击事件触发函数来显示所选值的数量。

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

<!DOCTYPE html>
<html>
<head>
	<title>test</title>
	<script type="text/javascript" src="./jquery-1.7.2.min.js"></script>
	<script type="text/javascript">
		$(function(){
			
			var arrays = new Array();

			var sumCheckbox = document.getElementsByName("check");
			
			for (var i = 0; i < sumCheckbox.length; i++) {

				if(sumCheckbox[i].checked) {
					arrays.push(sumCheckbox.value);
				}
			}
			alert(arrays);
			var btn = document.getElementById("btn");

			btn.onclick = function(){

				document.write(arrays.length);
				alert(arrays.length);
			}
			
		
		});
		
	</script>
</head>
<body>
	
	<div id="tt">

		<input type="checkbox" value="1" name="check" checked="checked"></input>
		<input type="checkbox" value="2" name="check" ></input>
		<input type="checkbox" value="3" name="check" checked="checked"></input>

		<input type="button" value="click" id="btn"></input>
	</div>


</body>
</html>

### 解决 Element UI `el-table` 嵌套 `el-checkbox-group` 的必输校验问题 当在 `el-table` 中嵌套 `el-checkbox-group` 并设置为必填项时,可能会遇到即使选择了复选框也无法通过表单验证的情况。这通常是因为数据绑定和事件监听机制未能正确同步所导致。 为了确保 `el-checkbox-group` 正确触发必输校验,在表格初始化完成后应手动调用一次更新方法来刷新状态: ```javascript this.$nextTick(() => { this.$refs.checkboxGroup.clearValidate(); }); ``` 此外,还需确认 `v-model` 绑定的数据源已经正确反映用户的交互操作。对于每一行记录而言,应该维护一个独立的状态变量用于存储该行的选择情况,并将其传递给对应的 `el-checkbox` 控件[^1]。 如果仍然无法正常工作,则可以尝试自定义规则来进行更精确的控制。利用 `rules` 属性指定特定字段上的约束条件,并配合 `validateField()` 方法实现即时反馈功能[^2]。 最后值得注意的是,由于 `el-table-column` 默认不会渲染成标准 HTML 表格结构,因此某些情况下可能会影响内置表单控件的行为逻辑。此时建议调整模板布局方式或将验证逻辑移至父级组件处理。 ```html <template> <div class="demo-form"> <!-- 使用 ref 来获取 checkboxGroup 实例 --> <el-form :model="form" status-icon :rules="rules" ref="ruleFormRef"> <el-table :data="tableData" style="width: 100%"> <el-table-column prop="name" label="Name"></el-table-column> <el-table-column label="Selections"> <template slot-scope="{ row }"> <el-checkbox-group v-model="row.selectedItems" @change="handleChange(row)"> <el-checkbox v-for="(item, index) in options" :key="index" :label="item">{{ item }}</el-checkbox> </el-checkbox-group> </template> </el-table-column> </el-table> <el-button type="primary" @click="submitForm">Submit</el-button> </el-form> </div> </template> <script lang="ts"> import { defineComponent, reactive, toRefs } from 'vue'; export default defineComponent({ setup() { const state = reactive({ form: {}, tableData: [ { name: 'Row 1', selectedItems: [] }, { name: 'Row 2', selectedItems: ['Option A'] } ], rules: { // 自定义校验规则 selectionRule({ value }) { return new Promise((resolve, reject) => !value.length ? reject(new Error('Please select at least one option')) : resolve() ); } }, options: ['Option A', 'Option B'] }); function handleChange(row) { // 手动触发表单项重新校验 setTimeout(() => { (state.ruleFormRef as any).validateField(`selectionRule`); }, 0); } function submitForm() { (state.ruleFormRef as any).validate(valid => { console.log('Validation result:', valid); }); } return { ...toRefs(state), handleChange, submitForm }; } }); </script> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值