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.years[val[0]],
month: this.data.months[val[1]],
day: this.data.days[val[2]]
})
}
})