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

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]]

    })

  }

})

相关推荐

  1. 程序开发入门实战学习

    2024-01-30 20:30:02       56 阅读
  2. 程序开发入门实战学习

    2024-01-30 20:30:02       58 阅读
  3. 程序开发入门实战学习

    2024-01-30 20:30:02       57 阅读
  4. 程序开发入门实战学习

    2024-01-30 20:30:02       59 阅读
  5. 程序开发入门实战学习

    2024-01-30 20:30:02       48 阅读
  6. 程序开发入门实战学习

    2024-01-30 20:30:02       61 阅读
  7. 程序开发入门实战学习

    2024-01-30 20:30:02       50 阅读
  8. 程序开发入门实战学习

    2024-01-30 20:30:02       60 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-30 20:30:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-30 20:30:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-30 20:30:02       82 阅读
  4. Python语言-面向对象

    2024-01-30 20:30:02       91 阅读

热门阅读

  1. 剑指offer面试题13 在O(1)时间删除链表结点

    2024-01-30 20:30:02       57 阅读
  2. 最少硬币问题

    2024-01-30 20:30:02       48 阅读
  3. 张毅超值得宣传

    2024-01-30 20:30:02       46 阅读
  4. Spring Cache简明教程

    2024-01-30 20:30:02       68 阅读
  5. isinstance(1, type) 为什么会输出false呢

    2024-01-30 20:30:02       50 阅读
  6. 面试经典150题(96-100)

    2024-01-30 20:30:02       63 阅读
  7. 蓝桥杯 算法提高 字符串匹配(C++)暴力破解+KMP

    2024-01-30 20:30:02       64 阅读