checkbox 怎么阻止选中?
现在通过一个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
});
}