微信小程序checkbox,checkbox-group多选框的简易用法,代码简洁,可复用性高

这篇具有很好参考价值的文章主要介绍了微信小程序checkbox,checkbox-group多选框的简易用法,代码简洁,可复用性高。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

首先这是官网的用法:
代码非常的长,而且很难复用(不能多个复选框共用这个checkboxChange方法)

<checkbox-group bindchange="checkboxChange">
	 <label class="weui-cell weui-check__label" wx:for="{{items}}" wx:key="{{item.value}}">
	    <view class="weui-cell__hd">
	      <checkbox value="{{item.value}}" checked="{{item.checked}}"/>
	    </view>
	    <view class="weui-cell__bd">{{item.name}}</view>
	  </label>
</checkbox-group>
Page({
  onShareAppMessage() {
    return {
      title: 'checkbox',
      path: 'page/component/pages/checkbox/checkbox'
    }
  },

  data: {
    items: [
      {value: 'USA', name: '美国'},
      {value: 'CHN', name: '中国', checked: 'true'},
      {value: 'BRA', name: '巴西'},
      {value: 'JPN', name: '日本'},
      {value: 'ENG', name: '英国'},
      {value: 'FRA', name: '法国'}
    ]
  },

  checkboxChange(e) {
    console.log('checkbox发生change事件,携带value值为:', e.detail.value)

    const items = this.data.items
    const values = e.detail.value
    for (let i = 0, lenI = items.length; i < lenI; ++i) {
      items[i].checked = false

      for (let j = 0, lenJ = values.length; j < lenJ; ++j) {
        if (items[i].value === values[j]) {
          items[i].checked = true
          break
        }
      }
    }

    this.setData({
      items
    })
  }
})

划分线,下面是更好的写法


触发checkboxChange的时候传一个key值过去,之后值对应的是一个新数组(与下面wx:for的数组不同),用来存放已选择的项

<wxs module="v1">
	var  include = function(array,value) {
	    var has = false;
	    for (var i = 0; i < array.length; ++i) {
	        if (array[i] == value){
	            has = true;
	            return has
	        }
	    }
	    return has;
	 }
  module.exports.include =  include;
</wxs>

<checkbox-group bindchange="checkboxChange" data-key="selectedArray">
  <label wx:for="{{myArray}}" wx:key="index" >
       <view>
         <checkbox value="{{item.value}}" checked="{{v1.include(selectedArray,item.value)}}"/>
       </view>
       <view>{{item.name}}</view>
     </label>
 </checkbox-group>

因为 微信小程序中我们不能直接在wxml模板中使用includes方法(真是够落后的),所以只能用<wxs>自己定义一个,然后checked这样写,如果checked="{{item.checked}}"的话,选中状态的页面效果将不会存储起来.

为什么不用

var  include = function(array,value) {
    return array.indexOf(value) > -1
 }

来实现include效果,因为传值的时候默认会把数字转成字符串传过去,[“1”,“2”].indexOf(2)就等于-1了,用上面的方法就避免了这个情况

data:{
	myArray:[
      {value: 'v1', name: '菠萝'},
      {value: 'v2', name: '叉烧'},
    ],
    selectedArray: [],
},
checkboxChange(e) {
   let { key } = e.currentTarget.dataset;
   this.setData({
     [key]: e.detail.value
   })
 }

这里checkboxChange的意思就是把选中的值赋给我们传进来的参数(数组)
非常简洁,最重要的是,不管我们写了多少组checkbox-group,都能直接复用这个方法文章来源地址https://www.toymoban.com/news/detail-505009.html

到了这里,关于微信小程序checkbox,checkbox-group多选框的简易用法,代码简洁,可复用性高的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • uniapp使用checkbox-group以及API

    在Uniapp中,我们可以使用checkbox-group组件来实现多选框的功能。该组件可以将多个checkbox绑定在一起,使得它们可以一起被操作。 首先,在页面中引入checkbox-group组件: 在上面的代码中,我们定义了一个checkbox-group,并将其v-model绑定到了selectedFruits变量上。同时,我们还定义了

    2024年02月02日
    浏览(28)
  • 完美解决微信小程序使用复选框van-checkbox无法选中

    由于小程序使用了vant-ui框架,导致checkbox点击无法选中问题   记得定义 checked 默认值   解决办法 : 添加onChange事件,给 checked 做赋值操作。 可以打印看看console.log(e) 选中效果: 取消选中效果:    

    2024年02月12日
    浏览(60)
  • element ui多选框(Checkbox 多选框、Select多选框)编辑时无法选中的解决办法

     在上面添加变更事件,然后变更事件中添加this.$forceUpdate();  强制渲染多选框的样式即可 注意: 多选框需要传数组,字符串无法正常渲染,因此表单初始化绑定的v-model需要初始化为空数组[],而编辑页面传值时如果是字符串,需要转数组:         重点就是: this.$forceUpda

    2024年02月05日
    浏览(34)
  • C++ Qt开发:CheckBox多选框组件

    Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍 CheckBox 单行输入框组件的常用方法及灵活运用。 QCheckBox 是 Qt 中用于实现复选

    2024年02月05日
    浏览(31)
  • 关于ElementUI的CheckBox多选框数据回显

    我们经常需要进行多选框checkbox的数据回显  例如上图,需要回显已选的数据。 因为ElementUi已经对代码进行了封装,如下代码示例:  在 el-checkbox-group 的 v-model 数据需要和label标签值相同才能数据回显。 因为ElementUI已经封装好了,会自动匹配 el-checkbox-group 中 v-model 的数据和

    2024年02月11日
    浏览(35)
  • 微信小程序改变checkbox大小

    2024年02月04日
    浏览(32)
  • 微信小程序使用 checkbox 如何修改样式?

    主要通过 .wx-checkbox-input 、 .wx-checkbox-input-checked 以及 .wx-checkbox-input-checked::before 三个类名来设置 checkbox 的样式。 .wx-checkbox-input 用于设置未选中时框的样式 .wx-checkbox-input-checked 用于设置选中后框的样式 ,为了覆盖原生样式,需要与 .wx-checkbox-input 类连写,否则权重不够。 .

    2024年02月12日
    浏览(42)
  • 【微信小程序】checkbox,radio的样式修改

    一、checkbox样式修改 默认勾选与未勾选样式 wxml 设置wxss文件 更改大小、勾选背景颜色等: 修改radio的样式为环形 二、radio样式修改 wxml中的color要给一个值 设置wxss文件

    2024年02月11日
    浏览(32)
  • 微信小程序——实现单选、多选

    单选使用radio-group标签包裹radio标签 多选使用checkbox-group 标签包裹checkbox标签  单选和多选的wxml代码 以下是wxss代码

    2024年02月06日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包