HTML 中 checkbox 的全选

该博客展示了一个HTML页面,通过JavaScript实现了复选框的全选、全不选和选择转换功能。页面包含9个复选框及三个按钮,分别调用不同的函数来操作复选框状态,体现了HTML与JavaScript在前端交互中的应用。

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>C1 C2 C3 C4 C5 C6 C7 C8 C9</title>
</head>


<body>
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
  function checkAll() {
     for (var j = 1; j <= 9; j++) {
        box = eval("document.checkboxform.C" + j);
        if (box.checked == false) box.checked = true;
     }
  }
  function uncheckAll() {
     for (var j = 1; j <= 9; j++) {
         box = eval("document.checkboxform.C" + j);
         if (box.checked == true) box.checked = false;
     }
  }
 
  function switchAll() {
      for (var j = 1; j <= 9; j++) {
      box = eval("document.checkboxform.C" + j);
      box.checked = !box.checked;
  }
}
//  End -->
</script>
<form name=checkboxform>
<input type=checkbox name=C1 checked>C1<br>
<input type=checkbox name=C2 checked>C2<br>
<input type=checkbox name=C3 checked>C3<br>
<input type=checkbox name=C4 checked>C4<br>
<input type=checkbox name=C5 checked>C5<br>
<input type=checkbox name=C6 checked>C6<br>
<input type=checkbox name=C7 checked>C7<br>
<input type=checkbox name=C8 checked>C8<br>
<input type=checkbox name=C9 checked>C9<br>
<br>
<input type=button value="全部选中" onClick="checkAll()"><br>
<input type=button value="全部不选" onClick="uncheckAll()"><br>
<input type=button value="选择转换" onClick="switchAll()"><br>
</form>

</body>

</html>

界面:
C1
C2
C3
C4
C5
C6
C7
C8
C9




### uView Checkbox 组件全选功能实现 在 uView 框架中,可以利用 `v-model` 和事件绑定机制来实现全选和反选的功能。以下是基于 Vue 的响应式数据管理以及 uView 提供的组件特性所设计的一个完整解决方案。 #### 数据结构定义 为了支持全选逻辑,通常会维护两个变量:一个是用于存储当前已勾选项的数据数组;另一个是布尔类型的标志位,表示是否处于全选状态。 ```javascript data() { return { options: [ { name: '选项一', value: 'option1' }, { name: '选项二', value: 'option2' }, { name: '选项三', value: 'option3' } ], selectedOptions: [], // 已选择项集合 isAllChecked: false // 是否全选标记 }; } ``` #### 计算属性 通过计算属性动态判断当前是否有部分或全部被选中的情况: ```javascript computed: { isCheckedPartially() { return this.selectedOptions.length > 0 && this.selectedOptions.length < this.options.length; } } ``` #### 方法定义 当点击全选按钮或者某个单独的选择框发生变化时,触发对应的方法更新状态。 ```javascript methods: { toggleAllSelection(value) { if (value === true || value === undefined) { this.isAllChecked = !this.isAllChecked; // 切换全选状态 this.selectedOptions = this.isAllChecked ? this.options.map(option => option.value) : []; } else { const checkedValues = Array.isArray(value) ? value : [value]; this.selectedOptions = [...new Set([...this.selectedOptions, ...checkedValues])]; // 合并去重后的值 } // 更新isAllChecked的状态 this.updateIsAllChecked(); }, updateIsAllChecked() { this.isAllChecked = this.selectedOptions.length === this.options.length; } } ``` #### 页面模板编写 使用 uView 的 `<u-checkbox-group>` 和 `<u-checkbox>` 来构建界面布局,并绑定相应的事件处理器。 ```html <view> <!-- 全选 --> <u-checkbox v-model="isAllChecked" @change="toggleAllSelection"> 全选 </u-checkbox> <!-- 单独选项 --> <u-checkbox-group @change="handleSingleSelectChange"> <block v-for="(item, index) in options" :key="index"> <u-checkbox shape="circle">{{ item.name }}</u-checkbox> </block> </u-checkbox-group> </view> ``` 其中,在单个复选框变化时也需要同步调整整体的选择状况: ```javascript handleSingleSelectChange(e) { this.toggleAllSelection(e); } ``` 以上代码片段展示了如何在 uView 中实现一个基本的全选与单项选择交互模式[^1]。此方案不仅适用于简单的表单场景,还可以扩展到更复杂的业务需求上,比如带有分页加载的大规模列表操作等情境下也能保持良好的用户体验[^2]。 #### 注意事项 - 需要确保每次修改 `selectedOptions` 数组之后及时刷新视图。 - 如果涉及到异步请求获取初始数据,则应在数据准备完毕后再初始化相关字段,默认情况下可能需要设置为空数组或其他默认值以防止未定义错误发生[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值