微信小程序-radio(自定义)

小程序官方本提供了该组件的使用,但是扩展性不太好,为了防止和CheckBox混淆,所以单独剔分出来

一 、HTML

<view wx:for="{{radio}}" wx:key="{{*this}}" class="checkbox '{{item.checked?'checkedActive':''}}'" data-id="{{index}}" bindtap='getradio'>
  <text>{{item.value}}</text>  
</view>

二、CSS

.checkbox {
  display: inline-block;
  padding: 10rpx;
  background: #eee;
  margin: 10rpx;
  border-radius: 10rpx;
}

.checkedActive {
  background: red;
  color: #fff;
}

三、JS

Page({
  data:{
    radio:[
      { 'value': '北京'},
      {'value':'广州'},
      {'value':'上海'},
      {'value':'沈阳'}
    ]
  },

  //单选
  getradio:function(e){
    let index = e.currentTarget.dataset.id;
    let radio = this.data.radio;
    for(let i=0; i<radio.length; i++){
      this.data.radio[i].checked = false;
    }
    if (radio[index].checked){
      this.data.radio[index].checked = false;
    }else{
      this.data.radio[index].checked = true;
    }
    let userRadio = radio.filter((item,index)=>{
      return item.checked == true;
    })
    this.setData({radio:this.data.radio})
    console.log(userRadio)
  }
})

四、

*选中效果


*选中数据


五、

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值