小程序中 radio 的一个坑,到底 checked 该赋什么值?

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/henryhu712/article/details/83059365

首先看官方给出的代码,wxml:

<radio-group class="radio-group" bindchange="radioChange">
  <label class="radio" wx:for="{{items}}">
    <radio value="{{item.name}}" checked="{{item.checked}}"/>{{item.value}}
  </label>
</radio-group>

js

Page({
  data: {
    items: [
      {name: 'USA', value: '美国'},
      {name: 'CHN', value: '中国', checked: 'true'},
      {name: 'BRA', value: '巴西'},
      {name: 'JPN', value: '日本'},
      {name: 'ENG', value: '英国'},
      {name: 'TUR', value: '法国'},
    ]
  },
  radioChange: function(e) {
    console.log('radio发生change事件,携带value值为:', e.detail.value)
  }
})

似乎很清楚,选中的选项,设置为 checked=“true”。我很轻易的认为,没有选中的,那就设置为 checked=“false”, 错了!

实际上,就算这样写:checked=“abc”, 同样是选中效果!因此,只有设定checked为空的元素,才是未选中的。

结论:为了设置未选中项的checked值,有两种方法:

  • 设置为空字符串 checked="{{item.val}}", item.val 为空字符串
  • 删掉变量 delete arr[i][‘val’]

猜你喜欢

转载自blog.csdn.net/henryhu712/article/details/83059365
今日推荐