vue checkbox 实现全选,取消全选

背景:在vue项目中引入了jq的datatables表格插件,自己在每行的第一项添加了一个checkbox

         那么如何实现全选,取消全选,拿到checked=true的值呢?


解决方案:

一:获取到checked=true的值:

<input type="checkbox" class="inputcheckbox" name="" v-model="checked" :value="data[index]">复制代码

checked 为数组 【 】

我们最后打印this.checked 就可以拿到checked=true的所有值!

二:所有的checkbox选中如何触发thead的input checkbox也选中?

<input type="checkbox" :checked="data.length === checked.length" class="inputcheckbox" name="select_all" @click="checkedAll">复制代码

data 是表格里所有的值,checked是checked=true的值

三:点击表头的input checkbox 如何将所有checkbox全选 ?

data return {} 中定义       isCheckedAll: false,
复制代码

checkedAll () {  // 点击全选checkbox会触发此事件
      //  全选后 取消其中一个checkbox的选中状态  此时isCheckedAll还是true ,优化后再次点击依旧是全选
      if (this.data.length !== this.checked.length && this.isCheckedAll === true) {
        this.isCheckedAll = true
      } else {
        this.isCheckedAll = !this.isCheckedAll
      }
      if(this.isCheckedAll) {    //  全选
        this.checked = []
        this.data.forEach(function (data) {
          this.checked.push(data)
        }, this)
      } else {
        this.checked = [] //  取消全选
      }
    },
复制代码


Vue中,可以使用`<input>`标签结合`v-model`指令来创建复选框checkbox)。使用`v-model`可以将复选框Vue实例中的数据进行双向绑定。通过设置不同的值和绑定不同的变量,可以实现单个复选框全选功能。 首先,可以使用`v-model`指令将复选框Vue实例中的数据进行绑定。例如,在模板中可以将复选框选中状态与一个布尔类型的变量进行绑定,如`v-model="checkboxModel"`,其中`checkboxModel`是在Vue实例中定义的一个变量。 接下来,可以使用`v-for`指令来循环遍历一个数组,并将数组中的每个元素与复选框进行绑定。在`v-for`中可以使用`v-model`指令将复选框选中状态与数组中的元素的某个属性进行绑定。例如,可以使用`v-model="obj.c"`将复选框选中状态与数组中的`obj`对象的`c`属性进行绑定。 要实现全选功能,可以在模板中添加一个额外的复选框,并使用`v-model`指令将其与一个布尔类型的变量进行绑定。然后,可以在选中状态发生改变时触发一个方法,通过遍历数组判断是否所有复选框都被选中,如果是,则将全选复选框选中状态设为`true`,否则设为`false`。 综上所述,通过使用`v-model`指令和`v-for`指令,可以在Vue实现复选框的功能和全选功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [vue checkbox 全选 数据的绑定及获取和计算方法](https://download.csdn.net/download/weixin_38747216/13975056)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Vue案例-----复选框](https://blog.csdn.net/weixin_43135489/article/details/123306265)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值