• 微信小程序:选择器标签摘要


    一、对话框选择器<picker>标签:

    属性说明:

    1. header-text:选择器标题(限Android)
    2. mode:选择器类型,值:selector(普通选择器)、multiSelector(多列选择器)、time(时间选择器)、date(日期选择器)、region(省市区选择器)    
    3. disabled:是否禁用
    4. range(限mode=selector/multiSelector):选择器可选列表
    5. range-key:选择器当前选择的key
    6. value:选择器当前选择的value,多列时是数组
    7. start(限mode=time/date):开始时间,格式:hh:mm、YYYY-MM-DD
    8. end(限mode=time/date):结束时间,格式:hh:mm、YYYY-MM-DD
    9. fields(限mode=date):date选择器的粒度,值:year(年)、month(月)、day(天)
    10. custom-item(限mode=region):每列顶部自定义的项
    11. level:province(省选择器)、city(市选择器)、region(区选择器)、sub-district(街道选择器)
    12. bindcancel:取消选择时触发的方法
    13. bindchange:选择器value改变时触发的方法,通过event.detail.value获值
    14. bindcolumnchange:列改变时触发的方法(限mode=multiSelecto)

    1.普通选择器:

    (1).wxml中显示选择器:

    1. <picker mode="selector" bindchange="onPickerChange" value="{{selectorData[0]}}" range="{{selectorData}}">
    2.   点击弹出普通选择器
    3. picker>

    (2).js中监听选择事件:

    1. Page({
    2.   data: {
    3.     selectorData: ['0行', '1行', '2行'],  //普通选择器数据
    4.   },
    5.   onPickerChange(e){ //选择器值改变时触发
    6.     console.log("onPickerChange 选择器事件 当前行value: " + e.detail.value);
    7.   }
    8. })

    2.多列选择器:

    (1).wxml中显示选择器:

    1. <picker mode="multiSelector" bindchange="onPickerChange" bindcolumnchange="onMultiPickerChange" value="{{multiSelectorData[0]}}" range="{{multiSelectorData}}">
    2.   点击弹出多列选择器
    3. picker>

    (2).js中监听选择事件:

    1. Page({
    2.   data: {
    3.     multiSelectorData: [['0列0行', '0列1行'], ['1列0行', '1列1行']], //多列选择器数据
    4.   },
    5.   onMultiPickerChange(e){ //多列选择器滚动时触发
    6.     console.log('onMultiPickerChange 当前列column: ', e.detail.column, '  当前行value: ', e.detail.value);
    7.   },
    8.   ...
    9. })

    3.时间选择器

    (1).wxml中显示选择器:

    1. <picker mode="time" bindchange="onPickerChange" value="{{timeSelectorData}}" start="00:00" end="23:59">
    2.   点击弹出时间选择器
    3. picker>

    (2).js中监听选择事件:

    1. Page({
    2.   data: {
    3.     timeSelectorData: '08:30',  //时间选择器数据
    4.   },
    5.   onPickerChange(e){ //选择器值改变时触发
    6.     console.log("onPickerChange 选择器事件 当前行value: " + e.detail.value);
    7.   }
    8. })

    4.日期选择器:

    (1).wxml中显示选择器:

    1. <picker mode="date" bindchange="onPickerChange" value="{{dateSelectorData}}" start="1977-01-01" end="2022-11-30">
    2.   点击弹出日期选择器
    3. picker>

    (2).js中监听选择事件:

    1. Page({
    2.   data: {
    3.     dateSelectorData: '2020-04-08',  //时间选择器数据
    4.   },
    5.   onPickerChange(e){ //选择器值改变时触发
    6.     console.log("onPickerChange 选择器事件 当前行value: " + e.detail.value);
    7.   }
    8. })

    5.省市区选择器:

    (1).wxml中显示选择器:

    1. <picker mode="region" bindchange="onPickerChange" value="{{adressSelectorData}}">
    2.   点击弹出省市区选择器
    3. picker>

    (2).js中监听选择事件:

    1. Page({
    2.   data: {
    3.     adressSelectorData: ['北京市', '北京市', '海淀区'], //省市区选择器数据
    4.   },
    5.   onPickerChange(e){ //选择器值改变时触发
    6.     console.log("onPickerChange 选择器事件 当前行value: " + e.detail.value);
    7.   }
    8. })

    二、页面选择器标签:

    属性说明:

    1. value:当前列当前行选择的索引值
    2. indicator-style:选择器选中框样式代码
    3. indicator-class:选择器选中框样式类
    4. mask-class:蒙层样式类
    5. immediate-change:是否在手指松开时立即触发change事件
    6. bindchange:选择器value改变时触发的方法,通过event.detail.value获值(当前列当前行索引,例[0, 0, 0])
    7. bindpickstart:选择器开始滚动时触发
    8. bindpickend:选择器结束滚动时触发

    1. .wxml中显示选择器:

    1. <picker-view class="picker_view_class" indicator-style="height: 50px;" value="{{[2022, 11, 30]}}" bindchange="onPpickerViewChange">
    2.   <picker-view-column>
    3.     <view wx:for="{{yearData}}" wx:key="{{yearData}}" class="picker_view_item_class">{{item}}年view>
    4.   picker-view-column>
    5.   <picker-view-column>
    6.     <view wx:for="{{monthData}}" wx:key="{{monthData}}" class="picker_view_item_class">{{item}}月view>
    7.   picker-view-column>
    8.   <picker-view-column>
    9.     <view wx:for="{{dayData}}" wx:key="{{dayData}}" class="picker_view_item_class">{{item}}日view>
    10.   picker-view-column>
    11. picker-view>

    2. .js中初始化数据与监听选择事件:

    1. const yearData = [] //年数据列表
    2. const monthData = [] //月数据列表
    3. const dayData = []  //日数据列表
    4. var maxYear = new Date().getFullYear()
    5. for (var i = 1977; i <= maxYear; i++) { //初始化年数据列表
    6.   yearData.push(i)
    7. }
    8. for (var i = 1; i <= 12; i++) { //初始化月数据列表
    9.   monthData.push(i)
    10. }
    11. for (var i = 1; i <= 30; i++) { //初始化日数据列表,此处没处理28或31天的情况
    12.   dayData.push(i)
    13. }
    14. ...
    15. Page({
    16.   data: {
    17.     yearData:  yearData,  //年数据
    18.     monthData:  monthData,  //月数据
    19.     dayData:  dayData,  //日数据
    20.   },
    21.   onPickerViewChange(e){ //选择器滚动事件
    22.     console.log('onPpickerViewChange 当前value: ', e.detail.value);
    23.   }
    24. })

    3. .wxss中定义选择器样式:

    1. .picker_view_class {
    2.   width: 100%
    3.   height: 300px;
    4. }
    5. .picker_view_item_class {
    6.   line-height: 50px
    7.   text-align: center;
    8. }

  • 相关阅读:
    【HTML+CSS】博客系统(页面设计)
    全局变量和静态变量的初始化
    6. vector
    【软件测试】不想变成打螺丝的测试打工人,自我改变提升自动化测试......
    C++中的智能指针
    开学季--CSDN联合天津科技大学校园活动正式来袭啦~
    13.求面积[有问题]
    什么Vue单文件组件(SFC)?
    【数据结构】深入了解队列
    【现场问题】datax中write部分为Oracle的时候插入clolb类型字段,插入的数据为string且长度过场问题
  • 原文地址:https://blog.csdn.net/a526001650a/article/details/128112512