微信小程序picker多列选择器 详解

微信小程序picker组件实战:构建可定制的年月日时分秒选择器 本文详细介绍了如何在微信小程序中使用picker组件构建可定制的年月日时分秒选择器。通过multiSelector模式实现多列数据联动,解决原生组件精度不足和灵活性差的问题,适用于预约系统、考勤打卡等需要精确时间选择的场景。 阅读详情

PS:multiArray:是一个二维数组,其中有几个元素,证明是几列选择器;初始化存放的是“各列”默认数据,随着操作变化,multiArray动态存放当前选中数据对应的各列数据。(语言表达能力太差了,希望大家结合程序能看懂)

multiIndex:是一维数组,用来存放各列选中值的下标。

以下代码为官方示例,代码中进行了注释。

wxml页面:

 <picker mode="multiSelector" bindchange="bindMultiPickerChange" bindcolumnchange="bindMultiPickerColumnChange" value="{{multiIndex}}" range="{{multiArray}}">
    <view class="picker">
    <!--3列的默认值 multiArray[0][0],multiArray[1][0],multiArray[1][0]  -->
        {{multiArray[0][multiIndex[0]]}},{{multiArray[1][multiIndex[1]]}},{{multiArray[2][multiIndex[2]]}}
     </view>
 </picker>

js页面:

  /**
   * 页面的初始数据
   */
  data: {
    index: 0,
    //multiArray是二维数组,picker多列选择器只支持二维数组
    multiArray: [['无脊柱动物', '脊柱动物'], ['扁性动物', '线形动物', '环节动物', '软体动物', '节肢动物'], ['猪肉绦虫', '吸血虫']],  
     //multiIndex一维数组,存放各列选中的值下标
    //默认值multiIndex: [0, 0, 0],其中第一个0表示选中multiArray[0][0]‘无脊柱动物’,第二个0表示选中multiArray[1][0]'扁性动物',第三个0表示选中multiArray[2][0]'猪肉绦虫'
    multiIndex: [0, 0, 0]
  },

  //bindMultiPickerChange选完数据,点击确定后触发
  bindMultiPickerChange: function (e) {
    console.log('picker发送选择改变,携带值为', e.detail.value)
    this.setData({
      multiIndex: e.detail.value
    })
  },
  //bindMultiPickerColumnChange 选完一列,则在当前列触发一次
  bindMultiPickerColumnChange: function (e) {
    console.log('修改的列为', e.detail.column, ',值为', e.detail.value);
    var data = {
      multiArray: this.data.multiArray,
      multiIndex: this.data.multiIndex
    };
    //e.detail.column  取值范围 0 1 2
    //记录当前选择列的值的下标
    data.multiIndex[e.detail.column] = e.detail.value;    
    //根据当前选择的列,联动更新后面两列的值,当e.detail.column=3时,上面一句完成赋值后,跳过下面switch,
    switch (e.detail.column) {
      case 0://当前滑动操作了第0列===============
        switch (data.multiIndex[0]) {
          case 0://无脊柱动物
            data.multiArray[1] = ['扁性动物', '线形动物', '环节动物', '软体动物', '节肢动物'];
            data.multiArray[2] = ['猪肉绦虫', '吸血虫'];
            break;
          case 1://脊柱动物
            data.multiArray[1] = ['鱼', '两栖动物', '爬行动物'];
            data.multiArray[2] = ['鲫鱼', '带鱼'];
            break;
        }
        //后面两列默认值都为第0个元素
        data.multiIndex[1] = 0;
        data.multiIndex[2] = 0;
        break;
      case 1://当前滑动操作了第1列===============
        switch (data.multiIndex[0]) {
          case 0://无脊柱动物
            switch (data.multiIndex[1]) {
              case 0://扁形动物
                data.multiArray[2] = ['猪肉绦虫', '吸血虫'];
                break;
              case 1://线形动物
                data.multiArray[2] = ['蛔虫'];
                break;
              case 2://环节动物
                data.multiArray[2] = ['蚂蚁', '蚂蟥'];
                break;
              case 3://软体动物
                data.multiArray[2] = ['河蚌', '蜗牛', '蛞蝓'];
                break;
              case 4:
                data.multiArray[2] = ['昆虫', '甲壳动物', '蛛形动物', '多足动物'];
                break;
            }
            break;
          case 1://脊柱动物
            switch (data.multiIndex[1]) {
              case 0:
                data.multiArray[2] = ['鲫鱼', '带鱼'];
                break;
              case 1:
                data.multiArray[2] = ['青蛙', '娃娃鱼'];
                break;
              case 2:
                data.multiArray[2] = ['蜥蜴', '龟', '壁虎'];
                break;
            }
            break;
        }
        data.multiIndex[2] = 0;
        break;
    }
    console.log(data.multiIndex);
    this.setData(data);
  },

微信小程序picker多列选择器:四级联动 【代码】小程序picker多列选择器:四级联动。 阅读详情

相关推荐

微信小程序的多级选择器(multiSelector模式的Picker)如何设计出各列之间的可选项有关联的逻辑?

对于多级选择器,如需实现多级联动,即各列之间的可选项有关联的逻辑,应当使用bindcolumnchange事件,当某列的选择有了变化,无需确认,就对整个多级选择器的可选项进行改变。

weixin_41640959的博客 3714

微信小程序picker多列选择器

微信小程序的picker多列选择器,封装picker组件

Cicada的博客 6157

微信小程序 picker-view 组件实现多语言自定义按钮的实战方案

本文详细介绍了如何在微信小程序中使用picker-view组件实现多语言自定义按钮的实战方案。针对原生picker组件在国际化场景下的局限性,提供了从多语言配置到样式优化的完整解决方案,帮助开发者轻松实现按钮文字随语言环境切换的功能。

weixin_29208077的博客 353

原生微信小程序自定义picker多列选择器:picker写法用法

最近用原生微信小程序写法写医疗相关项目微信小程序,在编辑个人资料的时候,需要很多选择器,比如城市地区选择器,职业职称选择器,科室选择器,学校选择器,学历选择器,年份日期选择器........总之用到的地方比较多,而微信文档里面这类的又很少,有的还不适合项目。需要进行改造。于是乎,便有了这篇文章。这是PC的编辑用户信息的选择器,小程序要做一样功能的,且调用PC选择器里面的接口返回的数据。(pc的一些选择器样式功能)先看看微信自有的一些选择器。

爱就码上行动,奔赴热爱,追光而行。愿你带着从容与热爱,拥抱每一天的惊喜与美好 5223

关于微信小程序picker之multiSelector多列选择器

关于微信小程序picker之multiSelector多列选择器 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客: 全新的界面设计 ,将会带来全新的写作体验; 在创作中心设置你喜爱的代码高亮样式,Ma

m0_55545985的博客 5150

【微信小程序】选择器组件picker

微信小程序之选择器组件picker

Fangyechy的博客 1万+

微信小程序picker组件实现多列选择器

【微信小程序】picker组件多列选择器的使用 功能需求 用微信小程序的多列选择器实现对一个树状结构图中的末节点的选择,要求选择器的第一列改变时,后面列的选项会联动改变。树状结构图的部分数据如下图; 图1 数据的树状结构图 效果预览 图2 多列选择器默认图 当选择“卡丘厂”后,后面的选项会联动改变: 图3 首列改变后的联动图 实现过程 1. WXML 使用 的mode = multiSelector时的多列选择器完成。 官方文档针对多列选择器的介绍是这样的: 图4 微信官方文档

qq_40727842的博客 8377

微信小程序自定义picker多列选择器

需求说明 使用 mpvue 实现自定义的 picker 多列选择器。 1、数据结构说明 根据 picker 的数据特征,需要构造一个如下所示的数据结构。data数组中的三个元素,分别用于渲染 picker 多列选择器的三列数据。能否构造出这个数据结构,直接影响了 picker 多列选择器实现的难易程度。 pid的作用是用于构建出满足 picker 多列选择器的树状数据结构,要特别注意。 const data = [ // 用于picker第一列的数据源 [ {id:1, name:'A.

sdasadasds的博客 3926

微信小程序自定义多列选择器的使用

微信小程序在自带的表单组件中加入了选择器picker,并给出了常用的时间和省市区三级联动选择器,但日常开发中不可能仅仅使用这些选择器,所以我们在学习时先写一个常见的自定义选择器来看一下。

alexsaurora的博客 1万+

微信小程序城市选择器picker

picker 基础库 1.0.0 开始支持,低版本需做兼容处理。 从底部弹起的滚动选择器。 属性类型默认值必填说明最低版本 mode string selector 否 选择器类型 1.0.0 disabled boolean false 否 是否禁用 1.0.0 bindcancel eventhandle 否 取消选择时触发 1.9.90 mode 的...

子钦加油的博客 3131

微信小程序省市县三级联动选择器实现与避坑

在前端表单交互中,级联选择器通过多列数据源与索引映射实现上下级联动,核心是滚动事件中同步更新候选集并重置下级索引,确认时再统一取值拼接文本。这类机制能减少无效输入、提升地址录入准确率,广泛应用于电商收货地址、门店信息、发票抬头等微信小程序表单场景。围绕省市县三级联动,需重点关注 picker 多列模式、bindcolumnchange 实时联动、数据源结构统一、编辑回显反查与真机调试,并将逻辑抽成可复用组件。

weixin_42103128的博客 279

微信小程序picker滚动选择器使用详解

微信小程序picker滚动选择器使用详解。

m0_58859743的博客 9048

小程序实现多列选择器

主要为大家详细介绍了小程序实现多列选择器的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

微信小程序picker多列选择器:mode = multiSelector

1

qq_34450741的博客 8067

基于IC617下Layout XL的使用

基于IC617下Layout XL的使用

weixin_43816759的博客 1万+

ERPS协议原理

目录 1、ERPS概述: 2、ERPS名词概念解释: 3、ERPS协议报文: 4、ERPS单环基本原理: 5、单环多实例原理: 6、多环原理: 1、ERPS概述: ERPS(Ethernet Ring Protection Switching),即以太网多环保护技术,是ITU-T定义的一种二层破环协议标准,标准号为ITU-T G.8032/Y1344,因此又称为G.8032。它定义了RAPS(Ring Auto Protection Switching)协议报文和保护倒换机制。 ERPS目前支持v1和v2两

weixin_44880796的博客 1万+

【愚公系列】2022年03月 微信小程序-picker选择器

picker 从底部弹起的滚动选择器 <view class="section"> <view class="section__title">普通选择器</view> <picker bindchange="bindPickerChange" value="{{index}}" range="{{array}}"> <view class="picker"> 当前选择:{{array[index]}} </

愚公智库 55万+

Unity3D 2022版如何一键安装Newtonsoft.Json?最新Package Manager教程

本文详细介绍了在Unity3D 2022及以上版本中,如何通过Package Manager一键安装和配置Newtonsoft.Json(Json.NET)。教程涵盖了从打开Package Manager、搜索并安装正确包源,到验证安装和基础使用的完整流程,旨在帮助开发者以现代化、可靠的方式集成这一强大的JSON处理框架,提升开发效率并规避手动导入的常见问题。

lg888的博客 920

微信小程序多项选择器_微信小程序——多列选择器picker组件

一、效果图二、picker属性一个简单地多列选择器只要给picker组件加属性mode="multiSelector"即可,绑定数据时使用range来绑定一个数组作为显示内容,下面是官方给出的属性解释。三、代码wxml:mode="multiSelector"bindchange="bindCustomPickerChange"bindcolumnchange="bindCustomPickerC...

weixin_39963053的博客 1959

地瓜派RDK X5部署YOLOv11n避坑指南:手把手教你解决Softmax算子导致的性能暴跌问题

本文详细介绍了在地瓜派RDK X5开发板上部署YOLOv11n模型时遇到的性能问题及解决方案。通过强制BPU部署Softmax算子,成功将推理速度从7FPS提升至47FPS,并提供了完整的优化流程和技术细节,帮助开发者避免类似性能陷阱。

weixin_42629671的博客 268

火灾图像检测识别:cnn卷积神经网络 Adaboost 支持向量机 随机森林 决策树 完整代码数据

火灾图像检测识别:cnn卷积神经网络 Adaboost 支持向量机 随机森林 决策树 完整代码数据

862

微信小程序----picker选择器(picker、省市区选择器)(MUI选择器)

微信小程序----picker选择器(picker、省市区选择器)(MUI选择器) DEMO下载 效果图 实现原理 利用微信小程序的picker组件,其中: 1,普通选择器:mode = selector实现一级选择实例; 2,省市区选择器:mode = regio...

liNewman的博客 1834

【报错解决】彻底解决 CondaHTTPError: HTTP 000 CONNECTION FAILED for url 报错

CondaHTTPError: HTTP 000 CONNECTION FAILED for url 错误本质上是由于 Conda 无法访问远程仓库引起的,常见原因包括网络不通、防火墙或安全软件阻拦、SSL 证书异常以及默认仓库不可达。解决该问题的关键在于:确保网络畅通、配置国内稳定镜像源、调整防火墙和安全设置、处理 SSL 证书问题,并保持 Conda 版本更新。通过这些方法,几乎可以彻底消除连接失败问题,保证 Conda 环境的正常使用和包管理的稳定性。

博客 1162

微信小程序之组件Picker[五类选择器[【默认】普通选择器,多列选择器,时间选择器,日期选择器,省市选择器]]

Picker 从底部弹起的滚动选择器,现支持五种选择器,通过mode来区分,分别是普通选择器,多列选择器,时间选择器,日期选择器,省市区选择器,默认是普通选择器。 普通选择器:mode = selector 属性名 类型 默认值 说明 最低版本 range Array / Object Array [] mode为 selector 或 multiSelector 时,range 有...

无名 3166

10、边缘智能学习技术解析

本文深入解析了边缘智能学习技术的四大核心方法:联邦学习、DNN拆分、迁移学习和八卦学习。文章从人类大脑的学习机制出发,引出边缘级智能的重要性,并详细阐述各类技术的架构、优势、挑战及适用场景。通过对比分析,展示了不同技术在隐私性、效率、可扩展性等方面的特性,并探讨了未来融合多种技术、软硬件协同优化及应用领域拓展的发展趋势,为边缘智能在物联网与人工智能领域的应用提供了系统性参考。

ppp33的博客 117

药物对接仿真软件:HADDOCK_(9).结果分析方法

HADDOCK是一种强大的药物对接仿真工具,通过对生成的输出文件进行详细的分析,我们可以验证仿真结果的可靠性,并为进一步优化药物设计提供依据。常见的分析方法包括解读输出文件、使用可视化工具进行结构分析、评估对接模型的稳定性和准确性等。通过这些步骤,我们可以更全面地了解受体和配体的结合模式,从而提高药物设计的成功率。

kkchenjj的博客 1006
上一篇: clone克隆远程仓库时提示:Failed to connect to github.com port 443.
下一篇: 防抖- 微信小程序输入框input
少杰()
博客等级 码龄4年 18粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

少杰()

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值