WeChat ミニ プログラム: セレクター タグの概要

1. ダイアログ ボックス セレクターの <picker> タグ:

プロパティの説明:

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

1. 通常のセレクター:

(1). セレクターは .wxml に表示されます。

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

(2).js で選択イベントをリッスンします。

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

2. 複数列セレクター:

(1). セレクターは .wxml に表示されます。

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

(2).js で選択イベントをリッスンします。

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

3. タイムピッカー:

(1). セレクターは .wxml に表示されます。

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

(2).js で選択イベントをリッスンします。

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

4. 日付ピッカー:

(1). セレクターは .wxml に表示されます。

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

(2).js で選択イベントをリッスンします。

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

5. 州、都市セレクター:

(1). セレクターは .wxml に表示されます。

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

(2).js で選択イベントをリッスンします。

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

2. ページセレクターの <picker-view> タグ:

プロパティの説明:

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

1. .wxml でセレクターを表示します。

<picker-view class="picker_view_class" indicator-style="height: 50px;" value="{
   
   {[2022, 11, 30]}}" bindchange="onPpickerViewChange">
  <picker-view-column>
    <view wx:for="{
   
   {yearData}}" wx:key="{
   
   {yearData}}" class="picker_view_item_class">{
   
   {item}}年</view>
  </picker-view-column>
  <picker-view-column>
    <view wx:for="{
   
   {monthData}}" wx:key="{
   
   {monthData}}" class="picker_view_item_class">{
   
   {item}}月</view>
  </picker-view-column>
  <picker-view-column>
    <view wx:for="{
   
   {dayData}}" wx:key="{
   
   {dayData}}" class="picker_view_item_class">{
   
   {item}}日</view>
  </picker-view-column>
</picker-view>

2. データを初期化し、.js で選択イベントをリッスンします。

const yearData = [] //年数据列表
const monthData = [] //月数据列表
const dayData = []  //日数据列表
var maxYear = new Date().getFullYear()
for (var i = 1977; i <= maxYear; i++) { //初始化年数据列表
  yearData.push(i)
}
for (var i = 1; i <= 12; i++) { //初始化月数据列表
  monthData.push(i)
}
for (var i = 1; i <= 30; i++) { //初始化日数据列表,此处没处理28或31天的情况
  dayData.push(i)
}
...
Page({
  data: {
    yearData:  yearData,  //年数据
    monthData:  monthData,  //月数据
    dayData:  dayData,  //日数据
  },
  onPickerViewChange(e){ //<picker-view>选择器滚动事件
    console.log('onPpickerViewChange 当前value: ', e.detail.value);
  }
})

3. .wxss でセレクター スタイルを定義します。

.picker_view_class {
  width: 100%; 
  height: 300px;
}
.picker_view_item_class {
  line-height: 50px; 
  text-align: center;
}

おすすめ

転載: blog.csdn.net/a526001650a/article/details/128112512