微信小程序下拉框组件使用方法详解


Posted in Javascript onDecember 28, 2018

本文实例为大家分享了微信小程序下拉框组件的使用方法,供大家参考,具体内容如下

适用场景

1、省市三级联动
2、出生日期选择
3、性别选择
4、一般性的下拉选择等

一、省市三级联动使用

注意mode = region,以及value = “一维数组”

//.wxml
<picker mode="region" bindchange="bindViewEvent" data-model="component" 
data-method="bindSelect" data-name="region" value="{{region}}" custom-item="{{customItem}}">
<view class="picker">
   当前选择:{{region[0]}},{{region[1]}},{{region[2]}}
</view>
</picker>

二、出生日期选择

注意mode = date,以及value = “日期字符串”

<picker mode="date" value="{{date}}" start="2015-09-01" end="2017-09-01" bindchange="bindViewEvent" data-model="component" data-method="bindSelect" date-mode="date" data-name="date">
  <view class="picker">
  {{date}}
  </view>
</picker>

三、性别选择

注意,不填mode默认为selector,range=”一维数组”,value=”当前选中索引”

<picker bindchange="bindViewEvent" data-model="component" data-method="bindSelect" data-name="index" value='{{index}}' range="{{gender}}">
  <view class="label-right">
    {{gender[index]}}
  </view>
</picker>

以上都需要在.js里设置相关初始变量!

//.js
 var app = getApp();

 data: {

  region:['河北','沧州','河间'],
  date:'2010-10-10',
  gender:['男','女'],
  index:0
 },

 bindViewEvent:function(e){

  app.process(this,e);  
 }

相关js类

//component.js
const select = require('../component/select.js');
const upload = require('../component/upload.js');

class component{

 constructor(com, that) {

  this.com = com;
  this.that = that;
 }

 //绑定下拉框选择事件
 bindSelect(data){

  let self = this;

  let mode = data.currentTarget.dataset.mode;

  let name = data.currentTarget.dataset.name;

  let picker = new select({
   that: self.that,
   mode: mode,
   name: name
  });

  picker.change(data.detail.value);
 }

 //点击事件,传递参数为e.currentTarget.dataset
 bindImageChoose(data){

  //图片上传
  this.uploader = new upload({
   that: that,
   name: data.name,
   mode: data.mode,
   count: data.count || 9
  });

  this.uploader.choose();
 }

 bindImageDel(data){

  //图片上传
  this.uploader = new upload({
   that: that,
   name: data.name,
   mode: data.mode,
   count: data.count || 9
  });

  this.uploader.del(data.index);
 }

}
module.exports = component;


//select.js
/*
* 下拉框对象
*/
class picker{

 constructor(data){

  this.that = data.that;
  this.name = data.name || 'date';
  this.mode = data.mode || 'selector';
 }

 show(name,data){

  let view = {};
  view[name] = data;

  this.that.setData(view);
 }

 change(data){

  let self = this;

  self.show(self.name, data);
 }
}
module.exports = picker;

//upload.js
class picUploader {

 constructor(data) {

  this.that = data.that;
  this.name = data.name;
  this.mode = data.mode || 1;
  this.count = this.model == 1 ? 1 : data.count || 9;
 }

 /*
 * 选择图片
 */
 choose() {

  const self = this;

  wx.chooseImage({
   count: (self.count - self.that.data[self.name].length),
   sizeType: ['original', 'compressed'],
   sourceType: ['album', 'camera'],
   success: function (res) {
    var tempFilePaths = res.tempFilePaths;

    self.append(tempFilePaths);
   }
  })
 }

 /*
 * 显示图片
 */

 show() {

  let self = this;
  let view = {};
  view[self.name] = self.that.data[self.name];

  self.that.setData(view);

 }

 /*
 * 追加图片
 */
 append(data) {

  const self = this;
  for (let i = 0; i < data.length; i++) {

   self.that.data[self.name].push(data[i]);
  }

  self.show();
 }

 /*
 * 删除图片
 */
 del(index) {

  let self = this;

  self.that.data[self.name].splice(index, 1);

  self.show();
 }


}
module.exports = picUploader;

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
翻译整理的jQuery使用查询手册
Mar 07 Javascript
javascript 写类方式之七
Jul 05 Javascript
javascript实现捕捉键盘上按下的键
May 05 Javascript
javascript中闭包(Closure)详解
Jan 06 Javascript
jQuery调用WebMethod(PageMethod) NET2.0的方法
Apr 15 Javascript
js实现产品缩略图效果
Mar 10 Javascript
使用vue实现grid-layout功能实例代码
Jan 05 Javascript
Vue.use源码学习小结
Jun 20 Javascript
在vue中使用express-mock搭建mock服务的方法
Nov 07 Javascript
浅谈Vue.js之初始化el以及数据的绑定说明
Nov 14 Javascript
微信小程序中的列表切换功能实例代码详解
Jun 09 Javascript
详解element-ui动态限定的日期范围选择器代码片段
Jul 03 Javascript
微信小程序实现星级评价效果
Dec 28 #Javascript
微信小程序实现日历效果
Dec 28 #Javascript
Mint UI实现A-Z字母排序的城市选择列表
Dec 28 #Javascript
axios携带cookie配置详解(axios+koa)
Dec 28 #Javascript
微信小程序日历/日期选择插件使用方法详解
Dec 28 #Javascript
解决echarts的多个折现数据出现坐标和值对不上的问题
Dec 28 #Javascript
微信小程序时间控件picker view使用详解
Dec 28 #Javascript
You might like
PHP多文件上传类实例
2015/03/07 PHP
jQuery)扩展jQuery系列之一 模拟alert,confirm(一)
2010/12/04 Javascript
javascript错误的认识不用关心内存管理
2012/12/15 Javascript
jquery数据验证插件(自制,简单,练手)实例代码
2013/10/24 Javascript
js中replace的用法总结
2013/12/27 Javascript
JS弹出层的显示与隐藏示例代码
2013/12/27 Javascript
JQuery中serialize()、serializeArray()和param()方法示例介绍
2014/07/31 Javascript
JS实现点击按钮获取页面高度的方法
2015/11/02 Javascript
jQuery遮罩层效果实例分析
2016/01/14 Javascript
JavaScript编写检测用户所使用的浏览器的代码示例
2016/05/05 Javascript
js html5 css俄罗斯方块游戏再现
2016/10/17 Javascript
微信小程序实现给循环列表添加点击样式实例
2017/04/26 Javascript
JS实现多级菜单中当前菜单不随页面跳转样式而发生变化
2017/05/30 Javascript
JS实现标签滚动切换效果
2017/12/25 Javascript
深入浅析js原型链和vue构造函数
2018/10/25 Javascript
electron实现静默打印的示例代码
2019/08/12 Javascript
JavaScript实现滑动门效果
2020/01/18 Javascript
理解JavaScript中的对象
2020/08/25 Javascript
[55:44]完美世界DOTA2联赛决赛 FTD vs Phoenix 第二场 11.08
2020/11/11 DOTA
python常用函数详解
2016/09/13 Python
Python实现多条件筛选目标数据功能【测试可用】
2018/06/13 Python
python 实现分组求和与分组累加求和代码
2020/05/18 Python
python eventlet绿化和patch原理
2020/11/21 Python
TensorFlow的环境配置与安装方法
2021/02/20 Python
英国旅行箱包和行李箱购物网站:Travel Luggage & Cabin Bags
2019/08/26 全球购物
《童年的发现》教学反思
2014/02/14 职场文书
党员干部批评与自我批评反四风思想汇报
2014/09/21 职场文书
对照四风自我剖析材料
2014/10/07 职场文书
加强干部作风建设整改方案
2014/10/24 职场文书
生日答谢词
2015/01/05 职场文书
售后服务质量承诺书
2015/04/29 职场文书
字典算法实现及操作 --python(实用)
2021/03/31 Python
Python快速优雅的批量修改Word文档样式
2021/05/20 Python
python编程项目中线上问题排查与解决
2021/11/01 Python
Go获取两个时区的时间差
2022/04/20 Golang
python和anaconda的区别
2022/05/06 Python