微信小程序动态改变checkbox的选中状态

先看实现的效果

动态改变checkedbox

上代码

wxml:

 <checkbox-group class="checkrideo" bindchange="checkboxChange">
//wx:for循环渲染数组中各个对象的value字段的值,
    <label wx:for="{{vascular_risk_factors}}" wx:key="{{item.id}}">
      <view>
//checked属性控制item.value渲染与否
        <checkbox value="{{item.value}}" checked="{{item.isdisabled}}" > {{item.value}} </checkbox>
      </view>
    </label>
  </checkbox-group>

.js

Page({

  /**
   * 页面的初始数据
   */
  data: 
        vascular_risk_factors:[
              {id:1,value:'高血压',isdesabled:''},
              {id:2,value:'糖尿病',isdesabled:''},
              {id:3,value:'冠心病',isdesabled:''},
              {id:4,value:'房颤',isdesabled:''},
              {id:5,value:'无',isdesabled:''}
             ],

//事件函数
     checkboxChange:function(e)
  { 
    //使用for循环遍历用户的所有选中对象,判断是否选择了选项<无>
      for(let j=0, lenj=e.detail.value.length; j<lenj; j++)
      if (e.detail.value[j]=='无') {
        console.log("用户选择了<无>")
    //if成立,使用for循环将除了选项<无>之外的对象中的isdisabled属性置为空字符,空字符代表假
        for(let i=0, leni=this.data.vascular_risk_factors.length; i<leni-1; i++)
        {
          var obj = "vascular_risk_factors[" + i + "].isdisabled";//关键语句,改变isdisabled的属性
          this.setData({
                    [obj]:''    
          });
 
        }
      }
  },
})

wxss:


/* 选框样式-圆型 */
.checkrideo .wx-checkbox-input {
  border-radius: 50%;
  width: 70rpx;
  height: 70rpx;
}
/* 让对勾居中 */
.checkrideo .wx-checkbox-input.wx-checkbox-input-checked:before {
  font: normal normal normal 14px/1 "weui";
  content: "\EA08";
  font-size: 35px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -48%) scale(0.73);
  -webkit-transform: translate(-50%, -48%) scale(0.73);
}
/* 对勾的大小以及颜色 */
.checkrideo .wx-checkbox-input.wx-checkbox-input-checked::before{
  /* width: 20rpx;
  height: 10rpx;
  font-size:30rpx;  */
  color:blue;
}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值