微信小程序—picker(滚动选择器)
官方api:https://mp.weixin.qq.com/debug/wxadoc/dev/component/picker.html
上边是官网的api。小程序中,底部下拉滚动选择主要有这几种
下拉选择,时间选择,城市选择,多项选择。
1.index.js中:
//index.js
//获取应用实例
const app = getApp()
Page({
data: {
//设置初始值
array: ['中国', '美国', '巴西', '俄罗斯'],
objectArray: [
{
id: ,
name: '中国'
},
{
id: ,
name: '美国'
},
{
id: ,
name: '巴西'
},
{
id: ,
name: '俄罗斯'
}
],
index: ,
multiArray: [['无脊柱动物', '脊柱动物'], ['扁性动物', '线形动物', '环节动物', '软体动物', '节肢动物'], ['寄生虫', '吸血虫']],
objectMultiArray: [
[
{
id: ,
name: '无脊柱动物'
},
{
id: ,
name: '脊柱动物'
}
], [
{
id: ,
name: '扁性动物'
},
{
id: ,
name: '线形动物'
},
{
id: ,
name: '环节动物'
},
{
id: ,
name: '软体动物'
},
{
id: ,
name: '节肢动物'
}
], [
{
id: ,
name: '猪肉绦虫'
},
{
id: ,
name: '吸血虫'
}
]
],
multiIndex: [, , ],
date: '2016-09-01',
time: '12:01',
region: ['辽宁省', '大连市', '高新园区'],
customItem: '全部'
},
//普通选择器的点击事件
bindPickerChange: function (e) {
console.log('picker发送选择改变,携带值为', e.detail.value)
this.setData({
index: e.detail.value
})
},
//多列选择器
bindMultiPickerChange: function (e) {
console.log('picker发送选择改变,携带值为', e.detail.value)
this.setData({
multiIndex: e.detail.value
})
},
//多列选择器,某一列的值改变时触发事件
bindMultiPickerColumnChange: function (e) {
console.log('修改的列为', e.detail.column, ',值为', e.detail.value);
var data = {
multiArray: this.data.multiArray,
multiIndex: this.data.multiIndex
};
data.multiIndex[e.detail.column] = e.detail.value;
switch (e.detail.column) {
case :
switch (data.multiIndex[]) {
case :
data.multiArray[] = ['扁性动物', '线形动物', '环节动物', '软体动物', '节肢动物'];
data.multiArray[] = ['寄生虫', '吸血虫'];
break;
case :
data.multiArray[] = ['鱼', '两栖动物', '爬行动物'];
data.multiArray[] = ['鲫鱼', '带鱼'];
break;
}
data.multiIndex[] = ;
data.multiIndex[] = ;
break;
case :
switch (data.multiIndex[]) {
case :
switch (data.multiIndex[]) {
case :
data.multiArray[] = ['猪肉绦虫', '吸血虫'];
break;
case :
data.multiArray[] = ['蛔虫'];
break;
case :
data.multiArray[] = ['蚂蚁', '蚂蟥'];
break;
case :
data.multiArray[] = ['河蚌', '蜗牛', '蛞蝓'];
break;
case :
data.multiArray[] = ['昆虫', '甲壳动物', '蛛形动物', '多足动物'];
break;
}
break;
case :
switch (data.multiIndex[]) {
case :
data.multiArray[] = ['鲫鱼', '带鱼'];
break;
case :
data.multiArray[] = ['青蛙', '娃娃鱼'];
break;
case :
data.multiArray[] = ['蜥蜴', '龟', '壁虎'];
break;
}
break;
}
data.multiIndex[] = ;
console.log(data.multiIndex);
break;
}
this.setData(data);
},
//日期选择器
bindDateChange: function (e) {
console.log('picker发送选择改变,携带值为', e.detail.value)
this.setData({
date: e.detail.value
})
},
//时间选择器
bindTimeChange: function (e) {
console.log('picker发送选择改变,携带值为', e.detail.value)
this.setData({
time: e.detail.value
})
},
//省市区选择器
bindRegionChange: function (e) {
console.log('picker发送选择改变,携带值为', e.detail.value)
this.setData({
region: e.detail.value
})
}
})
2.index.wxml中:
<view class="section">
<view class="section__title">普通选择器:</view>
<picker bindchange="bindPickerChange" value="{{index}}" range="{{array}}">
<view class="picker">
当前选择:{{array[index]}}
</view>
</picker>
</view> <view class="section">
<view class="section__title">多列选择器:</view>
<picker mode="multiSelector" bindchange="bindMultiPickerChange" bindcolumnchange="bindMultiPickerColumnChange" value="{{multiIndex}}" range="{{multiArray}}">
<view class="picker">
当前选择:{{multiArray[][multiIndex[]]}},{{multiArray[][multiIndex[]]}},{{multiArray[][multiIndex[]]}}
</view>
</picker>
</view>
<view class="section">
<view class="section__title">时间选择器:</view>
<picker mode="time" value="{{time}}" start="09:01" end="21:01" bindchange="bindTimeChange">
<view class="picker">
当前选择: {{time}}
</view>
</picker>
</view> <view class="section">
<view class="section__title">日期选择器:</view>
<picker mode="date" value="{{date}}" start="2015-09-01" end="2017-09-01" bindchange="bindDateChange">
<view class="picker">
当前选择: {{date}}
</view>
</picker>
</view>
<view class="section">
<view class="section__title">省市区选择器:</view>
<picker mode="region" bindchange="bindRegionChange" value="{{region}}" custom-item="{{customItem}}">
<view class="picker">
当前选择:{{region[]}},{{region[]}},{{region[]}}
</view>
</picker>
</view>
3.index.wxss中:
.section__title {
margin: 20rpx;
}
.section {
width: %;
font-size: 35rpx;
margin: 10rpx;
color: #;
}
.picker {
color: #6BD44E;
}
微信小程序—picker(滚动选择器)的更多相关文章
- 微信小程序-通知滚动小提示
代码地址如下:http://www.demodashi.com/demo/14044.html 一.前期准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.co ...
- 微信小程序picker组件两列关联使用方式
在使用微信小程序picker组件时候,可以设置属性 mode = multiSelector 意为多列选择,关联选择,当第一列发生改变时侯,第二列甚至第三列发生相应的改变.但是官方文档上给的只 ...
- mpvue微信小程序多列选择器用法:实现省份城市选择
前言 微信小程序默认给我们提供了一个省市区的picker选择器,只需将mode设置为region即可 <picker mode="region" bindchange=&qu ...
- 自定义省市选择器 微信小程序多列选择器
由于微信小程序的选择器为省市区选择器共3列 如我仅需要省市2列的选择器 就需要我们另寻他法找来找去没有合适的 只能自己写了 1. 首先我们把所需要的省数据 市县数据放在一个 p_c.js 文件里面,使 ...
- 微信小程序picker组件关于objectArray数据类型绑定
一.前言: 我发现很多的同学都在抱怨说微信小程序的picker的mode = selector/mode = multiSelector 无法实现Object Array数据类型的绑定,其实很多人就想 ...
- mpvue + 微信小程序 picker 实现自定义多级联动 超简洁
微信小程序官网只提供了省市区的三级联动,实际开发中更多的是自定义的多级联动: 依照微信小程序官网提供的自定义多级联动,需要使用到picker 的多列选择器,即设置 mode = multiSelect ...
- 微信小程序----日期时间选择器(自定义精确到分秒或时段)
声明 bug:由于此篇博客是在bindcolumnchange事件中做的值的改变处理,因此会出现当你选择时,没有点击确定,直接取消返回后,会发现选择框的值依然改变.造成原因:这一点就是由于在bindc ...
- 微信小程序scroll-view滚动一次多次触发的问题解决方案
最近使用微信小程序开发的时候,需要用scroll-view的bindscrolltolower事件,控制加载下一页的内容.但是发现在ios里,下拉滚动一次,事件触发两次,导致重复加载数据. 经过百度和 ...
- 微信小程序——picker通过value返回你想获取的值
关于微信小程序中的picker使用方法可以访问:picker-小程序 从它的官方文档中,可以看出它返回的value值是它range的下标: 在项目中,我们大多数时候传的值并不是需要这个下标,而是其他的 ...
随机推荐
- 洛谷 P1481 魔族密码
P1481 魔族密码 题目描述 风之子刚走进他的考场,就…… 花花:当当当当~~偶是魅力女皇——花花!!^^(华丽出场,礼炮,鲜花) 风之子:我呕……(杀死人的眼神)快说题目!否则……-_-### 花 ...
- A*算法学习(转)
A*启发式搜索算法详解 人工智能 1导言 1.1 算法 1.2 Dijkstra算法与最佳优先搜索 1.3 A*算法 2 启发式算法 2.1 A*对启发式函数的使用 2.2 速度还是精确度? 2.3 ...
- c++ 双冒号的作用
转:原文:http://www.cnblogs.com/charley_yang/archive/2011/02/24/1964217.html #define FLY 10 #line 100 &q ...
- 安卓实训第九天---Activity的复习以及在Onstart里设置网络连接
今天.首先对Activity的生命周期进行复习: (以下的截图部分是借鉴自赵雅智老师的博客.. .) Activity的完整生命周期自第一次调用onCreate()開始.直至调用onDestroy() ...
- hdu 4850 字符串构造---欧拉回路构造序列 递归+非递归实现
http://acm.hdu.edu.cn/showproblem.php? pid=4850 题意:构造长度为n的字符序列.使得>=4的子串仅仅出现一次 事实上最长仅仅能构造出来26^4+4- ...
- linux下apache+openssl配置记录
软件环境 Apache Httpd 2.2.29 (http://httpd.apache.org ) OpenSSL 1.0.1h (http://www.openssl.org/source ) ...
- Google Code Jam在线測试题目--Alien Language
Problem After years of study, scientists at Google Labs have discovered an alien language transmitte ...
- .m文件导入C++头文件带来的错误
这几天的工作挖了不少的坑.遇到了各种千奇百怪的错误,如今好好总结一下. 新建一个project,然后新建HelloCPP.h,HelloCPP.cpp文件.HelloCPP.h文件内容例如以下: #i ...
- mongoDB学习笔记——在C#中查询
1.下载安装 想要在C#中使用MongoDB,首先得要有个MongoDB支持的C#版的驱动.C#版的驱动貌似有很多种,如官方提供的samus. 实现思路大都类似.这里我们用官方提供的mongo-csh ...
- Coder-Strike 2014
转载请注明出处,谢谢http://blog.csdn.net/ACM_cxlove? viewmode=contents by---cxlove Qualification Round 略 Ro ...