<checkbox-group bindchange="checkboxChange">
<label class="checkbox" wx:for="{{items}}">
<checkbox value="{{item.name}}" checked="{{item.checked}}" />{{item.value}}
</label>
</checkbox-group>
Page({
data: {
items: [
{name: 'USA', value: '美国'},
{name: 'CHN', value: '中国', checked: 'true'},
{name: 'BRA', value: '巴西'},
{name: 'JPN', value: '日本'},
{name: 'ENG', value: '英国'},
{name: 'TUR', value: '法国'},
]
},
checkboxChange(e) {
console.log('checkbox发生change事件,携带value值为:', e.detail.value)
}
})
这是小程序 checkbox 的示例,我希望 <checkbox value="{{item.name}}" checked="{{item.checked}}" />
选中状态可以根据数据来确定是否选中,比如在以上的代码中,
checkboxChange(e) {
console.log('checkbox发生change事件,携带value值为:', e.detail.value)
this.setData({
// 我将第一项设置为true, 那么不管怎么点击,其他项也不会出现选中状态。这样都可以实现吗?
items[0]: {name: 'USA', value: '美国', checked: true}
})
}
效果类似于 react
的受控组件。因为要在选中之前判断一些逻辑来确认是否可以被选中。但是刚开始做小程序,发现不行。。不知道要怎么搞。希望在点击多选框后先判断一些逻辑,再去改变状态。求大佬指点。谢谢
使用disabled属性,设置如下:
DOM上的操作:
Data数据结构: