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


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 ajaxStart()与ajaxStop()方法(实例讲解)
Dec 18 Javascript
JavaScript获取网页中第一个图片id的方法
Apr 03 Javascript
Window.Open打开窗体和if嵌套代码
Apr 15 Javascript
jQuery下拉框的简单应用
Jun 24 Javascript
最原始的jQuery注册验证方式
Oct 11 Javascript
简单实现JS计算器功能
Dec 21 Javascript
Bootstrap面板学习使用
Feb 09 Javascript
vue动态组件实现选项卡切换效果
Mar 08 Javascript
Vue.js基础指令实例讲解(各种数据绑定、表单渲染大总结)
Jul 03 Javascript
react.js 父子组件数据绑定实时通讯的示例代码
Sep 25 Javascript
mescroll.js上拉加载下拉刷新组件使用详解
Nov 13 Javascript
jQuery实现百度图片移入移出内容提示框上下左右移动的效果
Jun 05 jQuery
微信小程序实现星级评价效果
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 检查扩展库或函数是否可用的代码
2010/04/06 PHP
PHP校验ISBN码的函数代码
2011/01/17 PHP
Mac环境下php操作mysql数据库的方法分享
2015/05/11 PHP
php获取本机真实IP地址实例代码
2016/03/31 PHP
关于javascript event flow 的一个bug详解
2013/09/17 Javascript
javascript结合ajax读取txt文件内容
2014/12/05 Javascript
JS中取二维数组中最大值的方法汇总
2016/04/17 Javascript
JS 日期与时间戮相互转化的简单实例
2016/06/22 Javascript
JS中的hasOwnProperty()、propertyIsEnumerable()和isPrototypeOf()
2016/08/11 Javascript
js绘制购物车抛物线动画
2020/11/18 Javascript
JavaScript算法系列之快速排序(Quicksort)算法实例详解
2016/09/04 Javascript
JS模拟实现ECMAScript5新增的数组方法
2017/03/20 Javascript
基于daterangepicker日历插件使用参数注意的问题
2017/08/10 Javascript
Thinkjs3新手入门之添加一个新的页面
2017/12/06 Javascript
Javascript中绑定click事件的四种方式介绍
2018/10/26 Javascript
利用Vue构造器创建Form组件的通用解决方法
2018/12/03 Javascript
layerui代码控制tab选项卡,添加,关闭的实例
2019/09/04 Javascript
Vue-Cli项目优化操作的实现
2019/10/27 Javascript
[01:56]生活中的妖精之七夕特别档
2016/08/09 DOTA
python处理自动化任务之同时批量修改word里面的内容的方法
2019/08/23 Python
python3中rank函数的用法
2019/11/27 Python
python对一个数向上取整的实例方法
2020/06/18 Python
Python性能测试工具Locust安装及使用
2020/12/01 Python
python如何调用php文件中的函数详解
2020/12/29 Python
Blue Nile台湾:钻石珠宝商,订婚首饰、结婚戒指和精品首饰
2017/11/24 全球购物
如何在发生故障的节点上重新安装 SQL Server
2013/03/14 面试题
传播学毕业生求职信
2013/10/11 职场文书
信息管理专业推荐信
2013/10/29 职场文书
教师党员一句话承诺
2014/03/28 职场文书
小学班长竞选演讲稿
2014/04/24 职场文书
教师求职信范文
2014/05/24 职场文书
身份证丢失证明
2015/06/19 职场文书
给校长的建议书作文400字
2015/09/14 职场文书
提取视频中的音频 Python只需要三行代码!
2021/05/10 Python
开发微信小程序之WXSS样式教程
2022/04/18 HTML / CSS
springboot读取resources下文件的方式详解
2022/06/21 Java/Android