《微信小程序开发从入门到实战》学习九十七

7.3 表单组件

7.3.1 picke-view与picker-view-column组件

一个picker-view-column代表 一个滚动选择器子项,一个picker-view组件可以包含多个picker-view-column组件,这样可以一次性选择多项内容如年、月、日等。

picker-view-column组件中需包含多个子元素,这些子元素是滚动选择器子项的选项列表。

picker-view组件支持的属性如下所示:

|-----------------|-------------|--------------------------------------------------------------------------------------------------|-------|
| 属性 | 类型 | 说明 | 最低版本 |
| value | number\[\] | 数组中的数组依次表示为picker-view内的picker-view-column选项的第几项(下标从0开始)。数字大于picker-view-column可选性长度时,选择最后一项 | 1.0.0 |
| indicator-style | string | 设置选择器中间选中项的样式 | 1.0.0 |
| indicator-class | string | 设置选择器中间选中项的类名 | 1.1.0 |
| mask-style | string | 设置蒙层的样式 | 1.5.0 |
| mask-class | string | 设置蒙层的类名 | 1.5.0 |
| bindchange | eventhandle | 滚动选择时触发change事件,event.detail={value};value为数组,表示picker-view内的picker-view-column当前选择的第几项(下标从0开始 ) | 1.0.0 |
| bindpickstart | eventhandle | 当滚动选择开始时触发事件 | 2.3.1 |
| bindpickend | eventhandle | 当滚动选择结束时触发事件 | 2.3.1 |

日期选择的示例代码如下,三个picker-view-column代表年、月、日的选择子项:

<!--WXML-->

<view>

<view style="text-align:center;">{{year}}年{{month}}月{{day}}日</view>

<picker-view indicator-style="height:50px" style="width: 100%;height: 300px;" value="{{value}}" bindchange="bindChange">

<picker-view-column>

<view wx:for="{{years}}" style="line-height: 50px;">{{item}}年</view>

</picker-view-column>

<picker-view-column>

<view wx:for="{{months}}" style="line-height: 50px;">{{item}}月</view>

</picker-view-column>

<picker-view-column>

<view wx:for="{{days}}" style="line-height: 50px;">{{item}}日</view>

</picker-view-column>

</picker-view>

</view>

// JS

const date = new Date()

const years = \[\]

const months = \[\]

const days = \[\]

for (let i = 1990; i < date.getFullYear(); i++) {

years.push(i)

}

for (let i = 1; i <= 12; i++) {

months.push(i)

}

for (let i = 1; i <= 31; i++) {

days.push(i)

}

Page({

/**

* 页面的初始数据

*/

data: {

years: years,

year: date.getFullYear(),

months: months,

month: 2,

days: days,

day: 2,

value: 9999,1,1

},

bindChange: function(e){

const val = e.detail.value

this.setData({

year: this.data.yearsval\[0],

month: this.data.monthsval\[1],

day: this.data.daysval\[2]

})

}

})

相关推荐
skywalk816310 分钟前
记录段言的开发过程
开发语言·学习·编程
知识分享小能手10 分钟前
Hadoop学习教程,从入门到精通, MapReduce分布式计算框架 — 完整知识点与代码案例(4)
hadoop·学习·mapreduce
YM52e41 分钟前
鸿蒙HarmonyOS ArkTS 实战:教师座椅出入记录 APP 从零到一
学习·华为·harmonyos·鸿蒙系统
踏着七彩祥云的小丑1 小时前
嵌入式测试第 32 天:升级测试:固件OTA升级、断点续传、回滚测试
单片机·嵌入式硬件·学习
小陈phd1 小时前
Text2SQL智能体学习笔记(二)——NL2SQL落地的隐形基石:元数据库
数据库·笔记·学习
前端 贾公子1 小时前
小程序蓝牙打印探索与实践(下)
小程序·apache
00后程序员张1 小时前
Jenkins 自动上传 IPA 到 App Store 把发布步骤融入 CI/CD
android·ios·小程序·https·uni-app·iphone·webview
踏着七彩祥云的小丑1 小时前
Go学习第4天:条件、循环语句+函数
学习·golang·go
tedcloud1232 小时前
Supermemory部署教程:打造Agent记忆与RAG环境
服务器·人工智能·学习·自动化·powerpoint
骑士雄师2 小时前
18.1 星系案例:多智能体宇宙探索系统(学习langgraph 的存储知识)
windows·python·学习