参考文档:https://developers.weixin.qq.com/miniprogram/dev/component/picker.html

wxml

<view class="section"><view class="section__title">普通选择器</view><picker bindchange="bindPickerChange" value="{{index}}" range="{{array}}"><view class="picker">当前选择:{{array[index]}}</view></picker>
</view>
<view class="section"><view class="section__title">多列选择器</view><picker mode="multiSelector" bindchange="bindMultiPickerChange" bindcolumnchange="bindMultiPickerColumnChange" value="{{multiIndex}}" range="{{multiArray}}"><view class="picker">当前选择:{{multiArray[0][multiIndex[0]]}},{{multiArray[1][multiIndex[1]]}},{{multiArray[2][multiIndex[2]]}}</view></picker>
</view>
<view class="section"><view class="section__title">时间选择器</view><picker mode="time" value="{{time}}" start="09:01" end="21:01" bindchange="bindTimeChange"><view class="picker">当前选择: {{time}}</view></picker>
</view><view class="section"><view class="section__title">日期选择器</view><picker mode="date" value="{{date}}" start="2015-09-01" end="2017-09-01" bindchange="bindDateChange"><view class="picker">当前选择: {{date}}</view></picker>
</view>
<view class="section"><view class="section__title">省市区选择器</view><picker mode="region" bindchange="bindRegionChange" value="{{region}}" custom-item="{{customItem}}"><view class="picker">当前选择:{{region[0]}},{{region[1]}},{{region[2]}}</view></picker>
</view>

js

Page({data: {array: ['美国', '中国', '巴西', '日本'],objectArray: [{id: 0,name: '美国'},{id: 1,name: '中国'},{id: 2,name: '巴西'},{id: 3,name: '日本'}],index: 0,multiArray: [['无脊柱动物', '脊柱动物'], ['扁性动物', '线形动物', '环节动物', '软体动物', '节肢动物'], ['猪肉绦虫', '吸血虫']],objectMultiArray: [[{id: 0,name: '无脊柱动物'},{id: 1,name: '脊柱动物'}], [{id: 0,name: '扁性动物'},{id: 1,name: '线形动物'},{id: 2,name: '环节动物'},{id: 3,name: '软体动物'},{id: 3,name: '节肢动物'}], [{id: 0,name: '猪肉绦虫'},{id: 1,name: '吸血虫'}]],multiIndex: [0, 0, 0],date: '2016-09-01',time: '12:01',region: ['广东省', '广州市', '海珠区'],customItem: '全部'},bindPickerChange: function (e) {console.log('picker发送选择改变,携带值为', e.detail.value)this.setData({index: e.detail.value})},bindMultiPickerChange: function (e) {console.log('picker发送选择改变,携带值为', e.detail.value)this.setData({multiIndex: e.detail.value})},bindMultiPickerColumnChange: function (e) {console.log('修改的列为', e.detail.column, ',值为', e.detail.value);var data = {multiArray: this.data.multiArray,multiIndex: this.data.multiIndex};data.multiIndex[e.detail.column] = e.detail.value;switch (e.detail.column) {case 0:switch (data.multiIndex[0]) {case 0:data.multiArray[1] = ['扁性动物', '线形动物', '环节动物', '软体动物', '节肢动物'];data.multiArray[2] = ['猪肉绦虫', '吸血虫'];break;case 1:data.multiArray[1] = ['鱼', '两栖动物', '爬行动物'];data.multiArray[2] = ['鲫鱼', '带鱼'];break;}data.multiIndex[1] = 0;data.multiIndex[2] = 0;break;case 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);},bindDateChange: function (e) {console.log('picker发送选择改变,携带值为', e.detail.value)this.setData({date: e.detail.value})},bindTimeChange: function (e) {console.log('picker发送选择改变,携带值为', e.detail.value)this.setData({time: e.detail.value})},bindRegionChange: function (e) {console.log('picker发送选择改变,携带值为', e.detail.value)this.setData({region: e.detail.value})}
})

效果
普通选择器;

多列选择器

时分秒(时间选择器)

年月日 日期选择器

省市选择器

传值问题:
微信小程序picker选择器传值
以最简单的普通选择器为例
wxml

<view class="cu-form-group margin-top"><view class="title d-flex">普通选择器</view><picker  class="w-100 h-100 borderBottom flex-1 d-flex jc-start ai-center" style="height:100rpx;font-size: 30rpx;color: #555;" bindchange="bindPickerChange" value="{{index}}" range="{{array}}"><view class="picker">当前选择:{{array[currentChoose]}}</view></picker></view>

js

Page({data: {array: ['工作', '放假', '加班', '调休'],currentChoose: 0},bindPickerChange: function (e) {console.log('picker发送选择改变,携带值为', e.detail.value)this.setData({currentChoose: e.detail.value})},})

wxss

.d-flex {
display: flex;
}
.cu-form-group .title {
text-align: justify;
padding-right: 30rpx;
font-size: 30rpx;
position: relative;
height: 60rpx;
line-height: 60rpx;}
.cu-form-group {background-color: var(--white);padding: 1rpx 30rpx;display: flex;align-items: center;min-height: 100rpx;justify-content: space-between;
}
.borderBottom {border-bottom: 1rpx solid #eee;
}.ai-center {
align-items: center;}
.jc-start {
justify-content: flex-start;}
.flex-1 {
flex: 1;}
.cu-form-group input {flex: 1;font-size: 30rpx;color: #555;padding-right: 20rpx;
}

array: ['工作', '放假', '加班', '调休'],对应的int值分别是0,1,2,3

在实际使用中
例子
微信小程序提交form表单内容
wxml

<form catchsubmit="confirmPublish"><view class="cu-form-group margin-top"><view class="title d-flex">姓名</view><view class="w-100 h-100 borderBottom flex-1 d-flex jc-start ai-center" style="height:100rpx;"><input maxlength="15" placeholder="请输入姓名" value="{{name}}" data-name="name" bindblur="setInput"></input></view></view><view class="cu-form-group margin-top"><view class="title d-flex">性别</view><picker class="w-100 h-100 borderBottom flex-1 d-flex jc-start ai-center" style="height:100rpx;font-size: 30rpx;color: #555;" bindchange="bindPickerChange" value="{{index}}" range="{{array}}"><view class="picker">{{array[sex]}}</view></picker></view><view class="cu-form-group margin-top"><view class="title d-flex">手机号</view><view class="w-100 h-100 borderBottom flex-1 d-flex jc-start ai-center" style="height:100rpx;"><input maxlength="15" placeholder="请输入姓名" value="{{phone}}" data-name="phone" bindblur="setInput"></input></view></view><view class="cu-form-group margin-top"><view class="title d-flex">证件号</view><view class="w-100 h-100 borderBottom flex-1 d-flex jc-start ai-center" style="height:100rpx;"><input maxlength="15" placeholder="请输入姓名" value="{{idNumber}}" data-name="idNumber" bindblur="setInput"></input></view></view><view class="cu-form-group margin-top"><view class="title d-flex">日期选择器</view><view class="picker" class="w-100 h-100 borderBottom flex-1 d-flex jc-start ai-center" style="height:100rpx;font-size: 30rpx;color: #555;" bind:tap="openPicker">{{currentChoose}}</view></view><van-action-sheet show="{{ show }}" bind:close="onClose" bind:getuserinfo="onGetUserInfo"><van-datetime-picker type="datetime" value="{{ currentDate }}" min-date="{{ minDate }}" max-date="{{ maxDate }}" bind:cancel="onCancel" bind:confirm="onConfirm" bind:change="onChange" /></van-action-sheet><view class="cu-form-group margin-top"><view class="title d-flex">来访事由</view><picker class="w-100 h-100 borderBottom flex-1 d-flex jc-start ai-center" style="height:100rpx;font-size: 30rpx;color: #555;" bindchange="bindPickerChangeCause" value="{{index1}}" range="{{visitCausearray}}"><view class="picker">{{visitCausearray[visitCause]}}</view></picker></view><view class="cu-form-group margin-top"><view class="title d-flex">来访公司</view><view class="w-100 h-100 borderBottom flex-1 d-flex jc-start ai-center" style="height:100rpx;"><input maxlength="15" placeholder="请输入姓名" value="{{visitCompany}}" data-name="visitCompany" bindblur="setInput"></input></view></view><view class="cu-form-group margin-top"><view class="title d-flex">被访姓名</view><view class="w-100 h-100 borderBottom flex-1 d-flex jc-start ai-center" style="height:100rpx;"><input maxlength="15" placeholder="请输入姓名" value="{{interviewee}}" data-name="interviewee" bindblur="setInput"></input></view></view><view class="cu-form-group margin-top"><view class="title d-flex">被访部门</view><picker class="w-100 h-100 borderBottom flex-1 d-flex jc-start ai-center" style="height:100rpx;font-size: 30rpx;color: #555;" bindchange="bindPickerOrgan" value="{{index2}}" range="{{organarray}}"><view class="picker">{{organarray[visitOrganId]}}</view></picker></view><button class='btn1' bindtap="bindViewTapsuccess" form-type="submit">完成</button></form>

js

// pages/addsign/addsign.js
var util = require('../../utils/util.js');
const app = getApp()
Page({/*** 页面的初始数据*/data: {globalid: [],array: ['男', '女'],sex: 0,visitCausearray: ['面试', '开会', '拜访顾客', '项目实施', '其他'],visitCause: 0,organarray: ['生产部', '运营部', '营销部'],visitOrganId: 0,date: '2021-06-01',name: '',phone: '',idNumber: '',subscribeTime: '',visitCompany: '',interviewee: '',visitOrgan: '',//日期选择器minHour: 0,maxHour: 24,minDate: new Date(1990, 1, 1).getTime(),maxDate: new Date(2099, 12, 31).getTime(),currentDate: new Date().getTime(),show: false,currentChoose: ''},//日期选择器的处理openPicker() {this.setData({show: true})},onConfirm(e) {this.setData({show: false,currentChoose: this.formatDate(new Date(e.detail))})},onClose() {this.setData({show: false})},onCancel() {this.setData({show: false})},formatDate(date) {let taskStartTimeif (date.getMonth() < 9) {taskStartTime = date.getFullYear() + "-0" + (date.getMonth() + 1) + "-"} else {taskStartTime = date.getFullYear() + "-" + (date.getMonth() + 1) + "-"}if (date.getDate() < 10) {taskStartTime += "0" + date.getDate()} else {taskStartTime += date.getDate()}taskStartTime += " " + date.getHours() + ":" + date.getMinutes()this.setData({taskStartTime: taskStartTime,})return taskStartTime;},//男女bindPickerChange: function(e) {console.log('picker发送选择改变,携带值为', e.detail.value)this.setData({sex: e.detail.value})},//来访事由bindPickerChangeCause: function(e) {console.log('picker发送选择改变,携带值为', e.detail.value)this.setData({visitCause: e.detail.value})},//部门bindPickerOrgan: function(e) {console.log('picker发送选择改变,携带值为', e.detail.value)this.setData({visitOrganId: e.detail.value})},/*** 生命周期函数--监听页面加载*/onLoad: function(options) {// 调用函数时,传入new Date()参数,返回值是日期和时间var time = util.formatTime(new Date());this.setData({currentChoose: time});},setInput: function(e) {const {name} = e.target.datasetthis.data[name] = e.detail.valuethis.setData(this.data)},confirmPublish: function() {var that = thisconst data = {}data.name = this.data.namedata.sex = this.data.sexdata.phone = this.data.phonedata.idNumber = this.data.idNumberdata.subscribeTime = this.data.currentChoosedata.visitCause = this.data.visitCausedata.visitCompany = this.data.visitCompanydata.interviewee = this.data.intervieweedata.visitOrgan = this.data.visitOrgandata.visitOrganId = this.data.visitOrganIdconsole.log(JSON.stringify(data))wx.request({url: 'http://192.xxx.4.1xx:8093/cs-applet/subscribe/addCallerSubscribe',method: 'POST',data: data,header: {'content-type': 'application/json',},success: function(res) {},fail: function(error) {wx.showToast({title: error.message || '保存失败'})console.log(error)}})},
})

css

/* 确认发布的按钮 */.btn1 {width: 90%;margin-top: 70rpx;margin-bottom: 70rpx;background-color: #09bb07;color: white;font-size: 33rpx;border-radius: 13rpx;display: flex;flex-direction: row;align-items: center;justify-content: center;
}.d-flex {display: flex;
}.cu-form-group .title {text-align: justify;padding-right: 30rpx;font-size: 30rpx;position: relative;height: 60rpx;line-height: 60rpx;
}.cu-form-group {background-color: var(--white);padding: 1rpx 30rpx;display: flex;align-items: center;min-height: 100rpx;justify-content: space-between;
}.borderBottom {border-bottom: 1rpx solid #eee;
}.ai-center {align-items: center;
}.jc-start {justify-content: flex-start;
}.flex-1 {flex: 1;
}.cu-form-group input {flex: 1;font-size: 30rpx;color: #555;padding-right: 20rpx;
}

点击完成的时候,将所有填写的值传给后端


http://www.taodudu.cc/news/show-2428253.html

相关文章:

  • 摄像头设计工程师面试技巧_系统设计面试准备的5个技巧
  • 入行 AI,如何选个脚踏实地的岗位?
  • IT 工程师长期保住饭碗的一些建议
  • 结对编程_我从结对编程面试中学到的东西
  • SSH实战 第四天 代码
  • 华为接头人话术指南:欲投华为,必看此贴!引流华为招聘提前批(备份)
  • 全面解析《嵌入式程序员应该知道的16个问题》
  • 嵌入式必知必会
  • 构建您的第一个Web爬网程序,第3部分
  • 程序员的核心竞争力
  • 人力资源管理系统(大二数据库课设) spring boot,Mybatis+bootstap,ajax项目
  • 行为型模式17-责任链模式
  • 【面试】剑指OFFER
  • Java interviewee-基础知识《一》
  • 华为应聘进展状态码解析(附加性格测试攻略)
  • 偏执的interviewee
  • PNP与NPN的转换电路
  • 传感器极性NPN和PNP区别!!!
  • PLC PNP输出与NPN输出
  • 讲解NPN与PNP三极管做开关管使用方法与计算
  • NPN PNP 的区别
  • NPN与PNP三极管
  • NPN和PNP三极管做开关电路
  • 随记:PNP和NPN三极管区别
  • PLC的PNP和NPN概念
  • PNP和NPN三极管区别
  • pnp mysql_NPN和PNP三极管的区别
  • PNP与NPN的区别与判断(一)
  • NPN和PNP的使用总结
  • NPN和PNP型传感器或开关如何接线?

微信小程序picker选择器(下拉框)以及传值问题相关推荐

  1. 微信小程序之select下拉框

    wxml: <view class="classify-kuangjia"><view class="classify-kuangjia2"& ...

  2. 微信小程序原生的下拉框组件

    前言 近日开发微信小程序时,需要一个下拉框的组件,使用和PC端下拉框一样的方式会显得很丑,于是发现微信官方API有个wx.showActionSheet,但是有诸多限制,例如:最大长度只能是6项,多选 ...

  3. 微信小程序如何实现下拉框效果?(代码示例)

    wxml代码: <view class='top-text'> 选择接收班级</view><!-- 下拉框 --><view class='top-selec ...

  4. 微信小程序下拉框插件_微信小程序三级联动下拉框插件

    //点击事件,点击弹出选择页 areaTap: function () { this.setData({ addressMenuIsShow:true }) }, cityCancel: functi ...

  5. 微信小程序下拉框插件_微信小程序自定义select下拉选项框组件的实现代码_清玖_前端开发者...

    知识点:组件,animation,获取当前点击元素的索引与内容 微信小程序中没有select下拉选项框,所以只有自定义.自定义的话,可以选择模板的方式,也可以选择组件的方式来创建. 这次我选择了组件, ...

  6. 微信小程序自定义select下拉选择组件

    微信小程序自定义select下拉选择组件 微信小程序原生开发中,常用到的是从底部弹起的滚动选择器(picker),而有些项目需要用到下拉选择,话不多说,下面就可以把下拉选择封装成一个自定义组件: 1. ...

  7. 微信小程序订单页面下拉刷新上拉分页加载

    微信小程序开发交流qq群   581478349    承接微信小程序开发.扫码加微信. 正文: 效果图: 代码: json代码: {"enablePullDownRefresh" ...

  8. 微信小程序实战篇-下拉刷新与加载更多

    下拉刷新 实现下拉刷新目前能想到的有两种方式 调用系统的API,系统有提供下拉刷新的API接口 下拉刷新API.png 监听scroll-view,自定义下拉刷新,还记得scroll-view里面有一 ...

  9. 微信小程序禁用页面下拉,且局部上下滚动不卡顿

    众所周知,微信小程序页面在下拉后,顶部会出现留白的不友好用户体验(当然,需要启用页面下拉刷新的另说).官网有禁用下拉的配置,但使用后,如果页面中局部区域需要滚动显示更多内容时,则会出现滚动不顺畅的情况 ...

  10. 微信小程序 界面禁止下拉 左右滑动_手机 QQ v8.0 正式版上线,新界面,新功能...

    本文授权转自艾橙互动公众号. 经过一段时间内测,QQ手机版8.0 版本正式上线了. 目前iOS 版本已经更新,iOS 用户可以通过在App Store 进行更新体验,目前版本为v8.0.0.472. ...

最新文章

  1. JavaScript判断对象是否为空对象或空数组
  2. [k8s] 第二章 十分钟带你搭建k8s集群环境
  3. 感知器调参之梯度下降法
  4. SET QUOTED_IDENTIFIER ON
  5. 完美解决 向UILable 文字最后插入N张图片,支持向限制行数的UILable 最后一行插入,多余文字显示......
  6. mvn本地生成jar包放在mvn项目依赖(将jar包传到本地仓库)
  7. 算法提高课-图论-单源最短路的综合应用-AcWing 342. 道路与航线:最短路dijkstra、拓扑排序 、综合题、好题
  8. PA银行面试之炮灰之程
  9. 北风网php笔记正则表达式,PHP中使用正则表达式提取中文实现笔记
  10. Struts中Action三种接收参数的方式?
  11. 设置 shell 脚本中 echo 显示内容带颜色
  12. matlab杜哈梅尔积分,非平稳地震作用下桥梁系统碰撞间隙宽度的概率评价方法与流程...
  13. 清理Visual Studio最近打开的项目、文件、查找内容和最近引用组件
  14. 【渝粤教育】 广东开放大学 10331k2_行政管理学_21秋考试
  15. wojilu系统的ORM代码解析-[源代码结构分析,用特性和反射来感知属性-特性介绍篇]...
  16. delphi dbgrideh 遍历每一个单元格_BFS 的使用场景:层序遍历、最短路径问题
  17. macbook pro 开发帮助
  18. paip.android 手机输入法制造大法
  19. 第五节 电阻分压 蓦然回首,那人却在,灯火阑珊处
  20. js、css基础总结

热门文章

  1. 韩版马化腾:在大财阀围堵下仍白手起家的凤凰男,抢滩加密交易平台、公链赛道...
  2. 【06月25日】指数估值排名
  3. ElasticSearch配置集群
  4. AD7705和压力传感器的计算
  5. Spring核心机制——IoC和AOP
  6. 让WIN2003和2008服务器iis支持安卓应用.apk文件下载的配置方法
  7. C语言总结(一维数组、二维数组、字符数组和字符串)
  8. 七夕到了 —— 属于 Java 的浪漫,拿去吧~ 祝表白成功
  9. Excel 绘制正态概率图-正态性检验
  10. Java开发自学教程!java应届生面试自我介绍