界面如下,就是简单多选功能,但是运行后,第一次点击复选框,发现选中了,又自动取消选中了,大概1秒左右,
查看控制台,发现bindchange被调了两次,求大神解惑!!
复选框代码如下
<checkbox-group bindchange="checkboxChange">
<view class="checkbox" wx:for="{{exam.items}}">
<checkbox value="{{item.name}}" checked="{{item.checked}}" disabled='{{exam.isExam}}' />
{{item.name}} {{item.value}}
</view>
</checkbox-group>
对应js方法:
界面:
把代码都发出来,我复制下看看
WXML:
<checkbox-group bindchange="checkboxChange">
<view class="checkbox" wx:for="{{exam.items}}">
<checkbox value="{{item.name}}" checked="{{item.checked}}" disabled='{{exam.isExam}}' />
{{item.name}} {{item.value}}
</view>
</checkbox-group>
JS:
Page({
/**
* 页面的初始数据
*/
exam: {
question: '为保障煤矿安全生产和从业人员的人身安全与健康,防止煤矿事故与职业病危害,根据( )、《煤矿安全监察条例》和《安全生产许可证条例》等,制定本规程。',
items: [
{
checked: false,
name: 'A',
value: '煤炭生产'
},
{
checked: false,
name: 'B',
value: '煤炭生产和煤矿建设'
},
{
checked: false,
name: 'C',
value: '《煤炭法》'
},
],
}
},
/**
* 多选
*/
checkboxChange(e) {
console.log('checkbox发生change事件,携带value值为:', e.detail.value)
},
知道怎么回事了,,这原来定义的一个变量,后来给去去掉了,代码里没改过来
恩恩
谢了
加个setTimeout试一下,或者每次选择的时候加一个状态来标记一下,根据标记来判断是否能选或不能选
就第一次选的时候出现选中又消失的情况,第二次就没这个问题了