1***@qq.com
1***@qq.com
  • 发布:2019-03-04 16:35
  • 更新:2022-05-26 12:15
  • 阅读:8950

checkbox的checked绑定后,我动态的改变了checked的值界面却没有取消或选中

分类:uni-app

官网代码

checkboxChange: function(e) {  
                var items = this.items;  
                var values = e.detail.value;  
                for (var i = 0, lenI = items.length; i < lenI; ++i) {  
                    items[i].checked = false;  
                    for (var j = 0, lenJ = values.length; j < lenJ; ++j) {  
                        if (items[i].value == values[j]) {  
                            items[i].checked = true;  
                            break  
                        }  
                    }  
                }  
            },  
            a() {  //动态修改数组中的checked的值为false  
                for (var i = 0; i < this.items.length; i++) {  
                    this.items[i].checked = false  
                }  
                console.log(this.items)  
            } // 实现了全选取消功能

我自己的代码

aa(){  
                for(var i=0;i<this.TeacherData.length;i++){  
                    this.TeacherData[i].checked = false;  
                }  
                //点击触发全选取消  
                console.log(this.TeacherData)  
            },  
checkboxChange(e) { //监听checkbox发生变化时触发  
                var items = this.TeacherData;  
                var values = e.detail.value;  
                this.chekValues = values  
                    for (var i = 0, lenI = items.length; i < lenI; ++i) {  
                        items[i].checked = false;  
                        for (var j = 0, lenJ = values.length; j < lenJ; ++j) {  
                            if (items[i].teacher == values[j]) {  
                                items[i].checked = true;  
                                break  
                            }  
                        }  
                    }  

            },  
//我自己的代码却没有实现全选取消,奇了怪了。checked的绑定也没问题
2019-03-04 16:35 负责人:无 分享
已邀请:
2***@qq.com

2***@qq.com

楼主解决了吗?我也是遇到了这个问题,虽然有些地方使用延时的v-if解决了但是效果不是太好,有些地方没有起作用!

Trust

Trust - 少说废话

提供下完整的测试代码,另外参考下最新的示例,以前的示例我记得有些小问题。
hello uni-app checkbox

  • 4***@qq.com

    官网的例子 一模一样 复制下来

    var items = this.promStock,

    values = e.detail.value;

    for (var i = 0, lenI = items.length; i < lenI; ++i) {

    const item = items[i]

    if (values.includes(item.id)) {

    console.log(111)

    this.$set(item, 'checked', true)

    } else {

    console.log(222)

    // this.$set(item, 'checked', false)

    }

    }


    我不改成false 点击复选框 会一直是选中状态才对 但是他还能取消选定

    2021-01-04 11:12

a***@qq.com

a***@qq.com

解决了吗?
现在我也是遇到这个问题,使用checkbox勾选了值,更新数组这个勾选值没有清除掉。

重庆金城武

重庆金城武 - 一个卑微前端

我也遇到这个问题了 ,值改成false但是还是为选中状态,也使用了$set方法更新了代码 但是视图还是没更新,楼主怎么解决的

1***@qq.com

1***@qq.com

我也是同样的问题 checked赋值打印为false 但是页面还是勾选状态

1***@qq.com

1***@qq.com - 666

我的个人项目已经上线了,我使用的是替换checkbox的,其实思想一样的。

1、Android的(软著没申请下来,暂时上不了架):http://d.firim.top/tc7b?utm_source=fir&utm_medium=qrhttp://d.firim.top/tc7b?utm_source=fir&utm_medium=qr

2、iOS已经上架搜索:猫云—优质贴心的宠物平台

3、顺便也给你们给链接吧,例如iOS做唤起第三方或某个APP时可以使用到 https://apps.apple.com/cn/app/猫云-优质贴心的宠物社交平台/id1474103355

8***@qq.com

8***@qq.com

$forceUpdate() 和$set()都不好使的使用,在视图部分加一个key,就会得到预期的效果,代码如下图所示

a***@163.com

a***@163.com

$forceUpdate() 和$set()都不好使,在视图部分加一个key我也试过,不好使,最后是用this.$nextTick解决的,
data里
someShow: true,

refresh() {
this.someShow = false
this.$nextTick(function() {
this.someShow = true
})
},
将 v-if=“someShow” 放 checkbox-group 上
在全选事件里调用 this.refresh() 方法

可以看看这个博客https://www.csdn.net/tags/MtTaMg3sMTg0MTg3LWJsb2cO0O0O.html

要回复问题请先登录注册