微信小程序实现单选按钮

 更新时间:2022年07月18日 15:10:19   作者:onlooker_thinker  
这篇文章主要为大家详细介绍了微信小程序实现单选按钮,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了微信小程序实现单选按钮的具体代码,供大家参考,具体内容如下

逻辑

  • 单选框的逻辑比较简单,把所有的元素遍历出来,等到点击单选按钮的时候,当value值与遍历变量值一致的时候就 把checked 设置为true,其他的时候把checked设置为 false 只需要一次循环。
  • 复选框的逻辑,也不复杂,当只有一个被选中的选项的时候,当点击已经选择的选项的时候,首选外层循环设置为false,这个时候 e.detail.value为零,所以无法进入内层循环,所以被取消。当选中未选择的选项的时候,则从第一个选项开始遍历,如果value值与外层相同则设置为TRUE。然后跳出内层,继续遍历,当有两个选中的选项的时候,点击已经选择的按钮,values值会减少l,所以最后一次的外层循环无法进入内层,所有取消该选项。

举例, 两选一 , 默认选中第一个;效果图如下:

.wxml文件 :

<view class='button_container'>
  <block wx:for="{{buttons}}" wx:key="buttons">
    <button class='{{item.checked?"checked_button":"normal_button"}}' data-id='{{item.id}}' bindtap='radioButtonTap'>{{item.name}}</button>
  </block>
</view>

.js文件 :

Page({
  data:{
    buttons: [{ id: 1, name: '失物招领' }, { id: 2, name: '寻物启事' }]
  },
  onLoad: function() {//默认选了第一个
    this.data.buttons[0].checked = true;
    this.setData({
      buttons: this.data.buttons,
    })
  },
   
  radioButtonTap: function (e) {
  console.log(e)
  let id = e.currentTarget.dataset.id
  console.log(id)
  for (let i = 0; i < this.data.buttons.length; i++) {
    if (this.data.buttons[i].id == id) {
      //当前点击的位置为true即选中
      this.data.buttons[i].checked = true;    
    }
    else {
      //其他的位置为false
    this.data.buttons[i].checked = false;
    }
  }
  this.setData({
  buttons: this.data.buttons
  })
  }
})

.wxss文件 :

.button_container{
  display: flex;
  flex-direction: row;
  justify-content: space-around
  }
  
  /* 按钮未选中 */
 .normal_button{
  background: white;
  }
  
  /* 按钮选中 */
  .checked_button{
  background: #36ab60;
  color: white
  }```

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 微信小程序scroll-view实现滚动穿透和阻止滚动的方法

    微信小程序scroll-view实现滚动穿透和阻止滚动的方法

    这篇文章主要介绍了微信小程序scroll-view实现滚动穿透和阻止滚动的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • 用js删除tbody的代码

    用js删除tbody的代码

    删除表格的第一个tbody
    2008-11-11
  • JS关键字球状旋转效果的实例代码

    JS关键字球状旋转效果的实例代码

    这篇文章主要介绍了JS关键字球状旋转效果的实例代码。需要的朋友可以过来参考下,希望对大家有所帮助
    2013-11-11
  • ES6 Promise对象的含义和基本用法分析

    ES6 Promise对象的含义和基本用法分析

    这篇文章主要介绍了ES6 Promise对象的含义和基本用法,结合实例形式分析了Promise的含义、功能、基本用法及相关操作注意事项,需要的朋友可以参考下
    2019-06-06
  • javascript实现发送短信倒计时

    javascript实现发送短信倒计时

    这篇文章主要为大家详细介绍了javascript实现发送短信倒计时,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • JavaScript通过this变量快速找出用户选中radio按钮的方法

    JavaScript通过this变量快速找出用户选中radio按钮的方法

    这篇文章主要介绍了JavaScript通过this变量快速找出用户选中radio按钮的方法,涉及javascript中this变量的使用技巧,非常具有实用价值,需要的朋友可以参考下
    2015-03-03
  • JavaScript实现找出字符串中第一个不重复的字符

    JavaScript实现找出字符串中第一个不重复的字符

    这篇文章主要介绍了JavaScript实现找出字符串中第一个不重复的字符的方法,需要的朋友可以参考下
    2014-09-09
  • JavaScript作用域链使用介绍

    JavaScript作用域链使用介绍

    作用域就是变量和函数的可访问范围,控制着变量和函数的可见性与生命周期,在JavaScript中变量的作用域有全局作用域和局部作用域
    2013-08-08
  • 微信小程序 wepy框架与iview-weapp的用法详解

    微信小程序 wepy框架与iview-weapp的用法详解

    这篇文章主要介绍了微信小程序 wepy框架与iview-weapp的用法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-04-04
  • Node调试工具JSHint的安装及配置教程

    Node调试工具JSHint的安装及配置教程

    Node的优势我就不再乱吹捧了,它让javascript统一web的前后台成为了可能。但是对于新手来说,server端的JS代码可能不像client端的代码那么好调试,直观。client端JS代码的调试基本上经历了一个从“肉眼--alert()--firebug(或者其它的developer tools)”的一个过程。而对于server端的调试,可能新手仍然停留在使用“肉眼--console()”的阶段。其实,Node经过了这么多年(虽然才短短几年)的发展,也有了很多不错的第三方的调试工具。包括Node内建的调试工具debugger、node-inspector等。
    2014-05-05

最新评论