小程序
小游戏
企业微信
微信支付
扫描小程序码分享
现在通过一个for循环渲染一组checkbox,规则是:最多选中三个。
想法:通过判断选中是否已经有三个,有就阻止再选。
但是,发现checkbox不能阻止选中,就算在checkbox-groud的bindchange的事件中return阻止了,也不行,所有求助各位大佬
5 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
1、checkBox 放在 checkbox-group 标签内 <block wx:for="{{hardwares}}" wx:key="value"> <checkbox class="weui-check" value="{{item.value}}" checked="{{item.checked}}" /> <icon class="weui-icon-checkbox_circle" type="circle" size="16" wx:if="{{!item.checked}}"></icon> <icon class="weui-icon-checkbox_success" type="success" size="16" wx:if="{{item.checked}}"></icon> </block> 2、checkbox-group 绑定事件 bindchange="checkboxChange" 3、建立数据 hardwares: [{ name: "0", value: 0 }, { name: "1", value: 1 }] 到 data 中,再写个如下函数,根据具体情况判断重新赋值 checkboxChange: function (e) { console.log('checkbox发生change事件,携带value值为:', e.detail.value); var hardwares = this.data.hardwares, values = e.detail.value; for (var i = 0, lenI = hardwares.length; i < lenI; ++i) { hardwares[i].checked = false; for (var j = 0, lenJ = values.length; j < lenJ; ++j) { if (hardwares[i].value == values[j]) { hardwares[i].checked = true; break; } } } this.setData({ hardwares: hardwares }); }
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
你重置为false不行么?
请学会如何「提问」(👈戳我)【个体工商户】微信认证问题(👈戳我)
或许这里有你想要的答案https://blog.csdn.net/csdn_yuan_/article/details/109011528
disabled
bindchange 判断下 已经选中3个的情况下 设置当前这个值为false
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
1、checkBox 放在 checkbox-group 标签内 <block wx:for="{{hardwares}}" wx:key="value"> <checkbox class="weui-check" value="{{item.value}}" checked="{{item.checked}}" /> <icon class="weui-icon-checkbox_circle" type="circle" size="16" wx:if="{{!item.checked}}"></icon> <icon class="weui-icon-checkbox_success" type="success" size="16" wx:if="{{item.checked}}"></icon> </block> 2、checkbox-group 绑定事件 bindchange="checkboxChange" 3、建立数据 hardwares: [{ name: "0", value: 0 }, { name: "1", value: 1 }] 到 data 中,再写个如下函数,根据具体情况判断重新赋值 checkboxChange: function (e) { console.log('checkbox发生change事件,携带value值为:', e.detail.value); var hardwares = this.data.hardwares, values = e.detail.value; for (var i = 0, lenI = hardwares.length; i < lenI; ++i) { hardwares[i].checked = false; for (var j = 0, lenJ = values.length; j < lenJ; ++j) { if (hardwares[i].value == values[j]) { hardwares[i].checked = true; break; } } } this.setData({ hardwares: hardwares }); }
你重置为false不行么?
请学会如何「提问」(👈戳我)
【个体工商户】微信认证问题(👈戳我)
或许这里有你想要的答案https://blog.csdn.net/csdn_yuan_/article/details/109011528
disabled
bindchange 判断下 已经选中3个的情况下 设置当前这个值为false