微信小程序radio點選框,再次點擊取消


radio點擊當前選項,取消選擇,在網上嘗試找了很多方法都不生效,通過給radio綁定一個點擊事件(

bindtap)來實現這一功能,直接看代碼:
index.wxml:
<view class="page">
    <view class="page__hd">
        <text class="page__title">radio</text>
        <text class="page__desc">單選框</text>
    </view>
    <view class="page__bd">
        <view class="section section_gap">
            <radio-group class="radio-group" bindchange="radioChange">
                <radio  class="radio"   bindtap = "bindtap1" wx:for-items="{{items}}" wx:key="name" value="{{item.name}}" checked = "{{item.checked}}">
                    <text>{{item.value}}</text>
                </radio>
            </radio-group>
        </view>
    </view>
</view>

index.wss:

.radio-group {
    border-bottom: 1px solid #ddd;
}
.radio {
    display: block;
    border-top: 1px solid #ddd;
    padding: 5px;
}

 index.js:

Page({
  data: {
    items: [
      { name: 'USA', value: '美國', checked:false},
      { name: 'CHN', value: '美國', checked: true },
      { name: 'BRA', value: '巴西', checked: false},
      { name: 'JPN', value: '日本', checked: false},
      { name: 'ENG', value: '英國', checked: false},
      { name: 'FRA', value: '法國', checked: false},
    ],
    aa:'CHN'
  },

  bindtap1:function(e){
    var items = this.data.items;
    for (var i = 0; i < items.length; i++){
      if (items[i].name == this.data.aa){
        for (var j = 0; j < items.length; j++) {
          // console.log("items[j].checked = ", items[j].checked);
          if (items[j].checked && j != i) {
              items[j].checked = false;
            }
        }
        items[i].checked = !(items[i].checked);
        console.log("-----:" ,items);
        // this.setData(this.data.items[i]);

      }
    }
    this.setData({
      items: items
    });
  },

  radioChange: function (e) {
  // for(var i = 0;i<this.data.items.length;i++){
  //   if (this.data.items[i].checked){
  //     // console.log('radio發生change事件,攜帶value值為:', this.data.items[i].name)
  //   }
  // }
    this.data.aa = e.detail.value;
    console.log(this.data.aa);
  }
})

 通過這樣就可以實現radio的再次點擊取消掉選擇


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM