uni-app中checkbox-group实现全选功能

功能描述:

点击全选框,选项全被选中,再次点击,选项全不被选中


全选框选中状态下,取消任一选项,全选框不被选中,并且在全选框不被选中的状态下,如果选项全都被选择,全选框会变为选中状态


代码块:

<template><view class="container"><text>请选择你喜欢的漫画</text><!-- 全选 --><checkbox-group name="allCheck" @change="changeAll"><label><checkbox :value="allCheck.value" :checked="allCheck.checked"/><text>{{allCheck.name}}</text></label></checkbox-group><!-- 每项选择 --><checkbox-group name="check" @change="changeCheck" class="check"><!-- 注意v-for不要设在checkbox-group上 --><label v-for="(item, index) in content" :key="item.id"><checkbox :value="item.value" :checked="item.checked"/><text>{{item.name}}</text></label></checkbox-group></view>
</template><script>export default {data () {return{allCheck : {name : '全选',value : 'all',checked : false    },content : [{name : '《某天成为公主》',value : '《某天成为公主》',id : 1,whether : true},{name : '《当神不让》',value : '《当神不让》',id : 2,whether : true},{name : '《海贼王》',value : '《海贼王》',id : 3,whether : true}]}},methods:{// 全选changeAll : function(e) {if(e.detail.value.length == 0) {this.content.map(item => this.$set(item, 'checked', false));this.$set(this.allCheck, 'checked', false);}else{this.content.map(item => this.$set(item, 'checked', true));this.$set(this.allCheck, 'checked', true);}},// 多选changeCheck : function(e) {var items = this.content;var len = this.content.length;var values = e.detail.value;// console.log(values)for(var i = 0; i < len; i++) {var item = items[i];if(values.includes(item.value)){this.$set(item, 'checked', true);}else{this.$set(item, 'checked', false);}}// 判断选中状态var arr = [];this.content.forEach(item => item.whether == true ? arr.push(item) : '');var isAll = arr.every(item => item.checked == true);isAll ? this.$set(this.allCheck, 'checked', true) : this.$set(this.allCheck, 'checked', false)}}}
</script><style>.container {position: fixed;left: 50%;top: 50%;transform: translate(-50%,-50%);}.check {display: flex;flex-direction: column;}page {background-color: #f1e4ff;}</style>

细节注意:

1.v-for不要写到checkbox-group标签上,而应该写到它的子级label上,不然取到的e.detail.value只是一个单选的值,而不是多选的值
2.this.$set的使用
3.数组的map、every、some等方法
4.举一反三,可以根据自己的需求去判断逻辑然后改写这个代码,都是通用的

uni-app中checkbox-group实现全选功能相关推荐

  1. 【javascript】checkbox——类似邮箱全选功能

    现在很多邮箱都有全选的功能,我也做了个练练手. <!DOCTYPE HTML> <html lang="en-US"> <head><me ...

  2. ListView加checkBox可以实现全选等功能

    1.效果图 2.LIteView_item布局 <?xml version="1.0" encoding="utf-8"?> <Relativ ...

  3. 点击编辑框全选内容java_Android 中使用EditText 点击全选再次点击取消全选功能

    最近在开发浏览器碰到这么一个需求:点击地址栏的时候,需要全选并调出键盘,再次点击就取消全选显示光标.点击屏幕除地址栏其他位置时,键盘隐藏,隐藏光标. 大部分浏览器都是这样的逻辑,这样可以提高用户体验, ...

  4. uni app中使用图表

    关于在uni app中运用图表 今天写项目,需要在uni app中使用图表,我使用的是ucharts. 具体操作如下 1.下载 ucharts可以直接在uni app的插件市场下载安装. 先在插件市场 ...

  5. layui 实现表单、表格中复选框checkbox的全选功能

    一.layui 实现表单中多选框的全选功能,代码如下: //html页面表单 <form class="layui-form"><div class=" ...

  6. java记事本复制粘贴_Java Swing 如何实现记事本中“编辑”菜单下的 剪切,复制,粘贴,删除,全选 功能...

    这篇文字将要学习以下知识点: 1.如何给JButton按钮添加鼠标点击事件监听器 #1.addMouseListener(MouseListener l)  给JButton添加一个鼠标点击监听器l ...

  7. DevExpress中实现单选、多选、全选功能

    一.实现效果 GirdControl表格实现单选.多选.全选功能工程下载 实现对GridControl中的数据行单选.多选.全选功能,且能够获取到所有选择行的数据信息. 二.核心实现 2.1.在表格第 ...

  8. android 全选功能,Android实现ListView控件的多选和全选功能实例

    本文实例讲述了Android实现ListView控件的多选和全选功能.分享给大家供大家参考,具体如下: 主程序代码 MainActivity.Java package yy.test; import ...

  9. vue.js实战——购物车练习(包含全选功能)

    vue.js实战第5章 54页的练习1 直接放代码好了,全选的部分搞了好久,代码好像有点啰嗦,好在实现功能了(*^▽^*) HTML: <!DOCTYPE html> <html l ...

最新文章

  1. 怎样将c语言的字体变中文,请问,在c语言中如何将阿拉伯数字转换成汉字,求代码...
  2. 伟大:看谷歌如何造福人类健康事业
  3. 达尔豪斯大学计算机科学世界排名,达尔豪斯大学成了全加最好,这又是个什么排名?...
  4. NetBeans 时事通讯(刊号 # 74 - Sep 30, 2009)
  5. Huge page使用的一些问题
  6. 简单的php文件上传实例
  7. 架构设计工作笔记005---微服务架构中的服务编排了解
  8. pandas之Series()菜鸟教程
  9. 微信小程序生成体验版二维码
  10. endnote找不到国标_实验差距惊人!揭秘雅迪高于新国标的品质标准测试
  11. 腾讯笔试题——java题总结无答案
  12. matlab ode45例子,matlab的ode45
  13. k8s 安装 elasticsearch(ECK)
  14. 【100%通过率 】华为OD真题c++/java/python【完美走位】【 2022 Q4 | 100分】
  15. 【文智背后的奥秘】系列篇——自动文本分类
  16. 集线器,路由器,交换机之间的区别
  17. MySQL Galera 集群安装与配置详解
  18. 梯度类算法原理:最速下降法、牛顿法和拟牛顿法
  19. 攻击微软、三星等大型企业的黑客组织LAPSUS$成员被逮捕
  20. 当机器学习遇到病理学,机遇和挑战(UCL柴秉浩博士 | 钰沐菡 公益公开课)

热门文章

  1. PTA 7-132 闰年判断
  2. SQL Server: 数据库模式SCHEMA
  3. 华为鸿蒙不应用在手机,华为鸿蒙发布,而不是用在手机上,首发智慧屏
  4. navicat for mysql排序_Navicat for MySQL功能最全总结
  5. 汇编语言冒泡排序一看就懂
  6. 1650显卡能带动144hz吗_我告诉你1060显卡能带动144hz吗
  7. Mac终端获取外网地址、运营商、和ip地区信息
  8. Bootstrap组件福利篇:十二款好用的组件推荐
  9. 算法:整数转罗马数字(integer-to-roman)。
  10. AE10.4+VS2019安装教程