微信小程序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的再次点击取消掉选择

原文地址:https://www.cnblogs.com/dududuzhaoji/p/9017913.html

时间: 2024-10-10 13:50:42

微信小程序radio点选框,再次点击取消的相关文章

微信小程序-自定义复选框

功能: 1.需要多选复选框,并且可以上拉滚动: 2.需要通过名称手写字母排序的,并且可以上拉滚动: 常规的小程序自带的原生picker无法满足我们的要求,因此一些特殊效果需要我们自定义来实现,废话不多说,我们直接看效果: index.wxml布局 <view class="container"> <view class='class bgFFF' bindtap='isDep'> <view class='class-text'> <text

微信小程序实现多选分享

微信小程序拉取好友列表后,默认只能选一个分享,现在在分享回调onShareAppMessage里加上这段代码,拉取好友列表时,右上角会出现多选按钮,这样就解决了微信小程序安卓下只能单选分享的问题. /** * 用户点击右上角分享 */ onShareAppMessage: function (res) { if ((res && res[0] && res[0].from == 'menu') || (res.from && res.from == 'men

微信小程序radio组件 - 如何改变默认样式大小?

今天在写小程序的时候用到radio组件,但是很懊恼并未提供修改radio组件大小属性,第一感觉准备用css width , height 改变radio的大小,但是怎么搞也无法改变. 但是又不愿意搞个图片或者字体啥的,感觉麻烦,后来用了下面样式可以改变radio默认样式大小: radio{ transform:scale(.8)  } 原文地址:https://www.cnblogs.com/changxue/p/8432531.html

微信小程序select下拉框实现

小程序中是没有h5中的下拉 标签的 所以要实现下拉功能就必须自己动手写拉,这里为了更清楚的显示小程序层级 就把源码直接复制过来了 <view class='list-msg'> <view class='list-msg1'> <text>商品金额</text> <text>¥99.00</text> </view> <!--下拉框 --> <view class='list-msg2' bindtap=

微信小程序判断用户是否需要再次授权获取个人信息

一.index.js设置如下 //获取用户的授权信息,放到本地缓存中 wx.getSetting({ success: (res) => { if(res.authSetting['scope.userInfo']) { wx.setStorage({ key: 'can_getuserinfo', data: 1, }) } else { wx.setStorage({ key: 'can_getuserinfo', data: 0, }) } } }), //1:从本地缓存中获取数据,如果获

微信小程序radio组件

wxml文件 <radio-group bindchange="changeme"> <label wx:for='{{items}}'> <radio value='{{item.value}}' checked='{{item.checked}}' /> {{item.name}} </label> </radio-group> js文件 Page({ /** * 页面的初始数据 */ data: { items: [ {

微信小程序 - radio/checkbox自定义组件

自定义radio/checkbox组件,可根据自己要求自行修改 点击下载:示例 原文地址:https://www.cnblogs.com/cisum/p/10324607.html

微信小程序-自定义弹出框

<---------------------------------定义组建-------------------------------------------------------------------------> // components/component-tag-name.js Component({ options: { multipleSlots: true // 在组件定义时的选项中启用多slot支持 }, /** * 组件的属性列表 */ properties: {

微信小程序 select 下拉框组件

一.源码地址 https://github.com/imxiaoer/WeChatMiniSelect 二.效果图 录屏图片质量较差,所以大家会看到残影(捂脸) 三.组件源码 1. select.wxml <view class="select-box"> <view class="select-current" catchtap="openClose"> <text class="current-name