微信小程序实现工作时间段选择


Posted in Javascript onFebruary 15, 2019

本文实例为大家分享了微信小程序工作时间段选择的具体代码,供大家参考,具体内容如下

微信小程序实现工作时间段选择

1. 效果图如上,需完成时间段的选择  以及下面的工作日选择  保存按钮为formSubmit提交后台

2.思路:

①时段用picker跟input  如果没有占位字符  则不需要input

②工作日选择用checkbox  多选的样式用label  将checkbox隐藏

③label的选择后的样式跟取消的样式,这里无需判断checked  当然也可以判断checked  我这里的方法是,先建一个放星期一到星期天的数组date,选择之后,在js里返回的detail.value里找到所选择的日期selectedList,再判断date是否在selectedList内存在(注意是date在list中是否存在)。如果存在则设对应的布尔为true,否则false。

下面为代码:

wxml

<!--pages/addtime/index.wxml-->
<view class='main'>
 <view class='when'>
  <form bindsubmit='formSubmit'>
  <button formType='submit' id='save'>保存</button>
   <!-- 选择时间段 -->
   <view class="selectTime">
     <text>时段:</text>
     <view class="section">
      <picker mode="time" value="{{time}}" start="09:00" end="21:00" bindchange="bindTimeChange" id='startTime'>
      <!-- 在js中判断所选picker的id为startTime时,将value赋值给startTime,放在input内 -->
       <view class="picker">
         <input placeholder='开始时间' value='{{startTime}}' name="startTime"></input>
       </view>
      </picker>
     </view>
     <text>至</text>
    <view class="section">
      <picker mode="time" value="{{time}}" start="09:00" end="21:00" bindchange="bindTimeChange" id='endTime'>
      <!-- 在js中判断所选picker的id为endTime时,将value赋值给endTime,放在input内 -->
      
       <view class="picker">
         <input placeholder='结束时间' value='{{endTime}}' name="endTime"></input>
       </view>
      </picker>
     </view>
   </view>
 
   <!-- 选择星期 -->
   <view class='selectDay'>
    <checkbox-group bindchange="checkboxChange" name="checkbox">
      重复:
      <!--写一个class选择后的背景色,在js中处理对应布尔值,在class中用三元式判断布尔并加背景色 -->
      <label class="checkbox {{selected.monday?'selectedColor':''}}" for='monday'>
      一
       <checkbox value="monday" id='monday' hidden/>
      </label>
 
      <label class="checkbox {{selected.tuesday?'selectedColor':''}}" for='tuesday'>
      二
       <checkbox value="tuesday" id='tuesday' hidden/>
      </label>
 
      <label class="checkbox {{selected.wednesday?'selectedColor':''}}" for='wednesday'>
      三
       <checkbox value="wednesday" id='wednesday' hidden/>
      </label>
 
      <label class="checkbox {{selected.thursday?'selectedColor':''}}" for='thursday'>
      四
       <checkbox value="thursday" id='thursday' hidden/>
      </label>
 
      <label class="checkbox {{selected.friday?'selectedColor':''}}" for='friday'>
      五
       <checkbox value="friday" id='friday' hidden/>
      </label>
 
      <label class="checkbox {{selected.saturday?'selectedColor':''}}" for='saturday'>
     六
       <checkbox value="saturday" id='saturday' hidden/>
      </label>
 
      <label class="checkbox {{selected.sunday?'selectedColor':''}}" for='sunday'>
     七
       <checkbox value="sunday" id='sunday' hidden/>
      </label>
 
    </checkbox-group>
   </view>
  </form>
 </view>
</view>

wx js

// pages/mine/index.js
Page({
 
 /**
  * 页面的初始数据
  */
 data: {
  startTime:null,
  endTime: null,
  selected: {"monday":false,"tuesday":false,"friday":false,"wednesday":false,"thursday":false,"sunday":false,"saturday":false},
 // selected内放对应的用来判断class的布尔json
 },
 bindTimeChange: function(e){
  if (e.currentTarget.id=="startTime") {
   this.setData({startTime:e.detail.value});
  }else if (e.currentTarget.id=="endTime") {
   this.setData({endTime:e.detail.value});
  }
 },
 checkboxChange: function(e){
  var selectedList = e.detail.value;
  var date = ["monday","tuesday","friday","wednesday","thursday","sunday","saturday"];//包含所有日期的数组
  var selected = this.data.selected;//先获取data中的值,好用来赋值
  for (var i = 0; i < date.length; i++) {
   if (selectedList.indexOf(date[i])!=-1) { //判断所有的日期date在所选择的列表中是否存在,存在则给class
    selected[date[i]] = true;
   }else{
    selected[date[i]] = false;
   }
  }
   this.setData({selected:selected});
 },
 formSubmit:function(e){
  //提交后台
  console.log(e);
 },

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

Javascript 相关文章推荐
如何在Web页面上直接打开、编辑、创建Office文档
Mar 12 Javascript
使用Jquery Aajx访问WCF服务(GET、POST、PUT、DELETE)
Mar 16 Javascript
超赞的动手创建JavaScript框架的详细教程
Jun 30 Javascript
jq实现左侧显示图片右侧文字滑动切换效果
Aug 04 Javascript
实例解析jQuery工具函数
Dec 01 Javascript
使用Bootstrap Tabs选项卡Ajax加载数据实现
Dec 23 Javascript
深入理解javascript中的 “this”
Jan 17 Javascript
JavaScript数据结构之二叉树的删除算法示例
Apr 13 Javascript
关于webpack2和模块打包的新手指南(小结)
Aug 07 Javascript
JS实现统计字符串中字符出现个数及最大个数功能示例
Jun 04 Javascript
node运行js获得输出的三种方式示例详解
Jul 02 Javascript
Vue如何基于vue-i18n实现多国语言兼容
Jul 17 Javascript
微信小程序实现展示评分结果功能
Feb 15 #Javascript
微信小程序时间标签和时间范围的联动效果
Feb 15 #Javascript
微信小程序实现商品属性联动选择
Feb 15 #Javascript
微信小程序实现购物页面左右联动
Feb 15 #Javascript
微信小程序基于picker实现级联菜单
Feb 15 #Javascript
微信小程序实现多个按钮的颜色状态转换
Feb 15 #Javascript
详解react-refetch的使用小例子
Feb 15 #Javascript
You might like
DOMXML函数笔记
2006/10/09 PHP
php中使用key,value,current,next和prev函数遍历数组的方法
2015/03/17 PHP
php实现的用户查询类实例
2015/06/18 PHP
如何快速的呈现我们的网页的技巧整理
2007/07/01 Javascript
js+css在交互上的应用
2010/07/18 Javascript
js中top、clientTop、scrollTop、offsetTop的区别 文字详细说明版
2011/01/08 Javascript
js动态添加onload、onresize、onscroll事件(另类方法)
2012/12/26 Javascript
javascript右下角弹层及自动隐藏(自己编写)
2013/11/20 Javascript
判断JS对象是否拥有某种属性的两种方式
2013/12/02 Javascript
jquery map方法使用示例
2014/04/23 Javascript
jQuery中append()方法用法实例
2015/01/08 Javascript
JavaScript让Textarea支持tab按键的方法
2015/06/26 Javascript
使用 JavaScript 进行函数式编程 (一) 翻译
2015/10/02 Javascript
JavaScript设计模式开发中组合模式的使用教程
2016/05/18 Javascript
js只执行1次的函数示例
2016/07/20 Javascript
JS 实现 ajax 异步浏览器兼容问题
2017/01/21 Javascript
assert()函数用法总结(推荐)
2017/01/25 Javascript
简单谈谈axios中的get,post方法
2017/06/25 Javascript
vue实现的上传图片到数据库并显示到页面功能示例
2018/03/17 Javascript
详解Vue webapp项目通过HBulider打包原生APP(vue+webpack+HBulider)
2019/02/02 Javascript
vue.js实现左边导航切换右边内容
2019/10/21 Javascript
《javascript设计模式》学习笔记七:Javascript面向对象程序设计组合模式详解
2020/04/08 Javascript
[51:29]Alliance vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
Python里隐藏的“禅”
2014/06/16 Python
解决python3在anaconda下安装caffe失败的问题
2017/06/15 Python
对Python闭包与延迟绑定的方法详解
2019/01/07 Python
Django MEDIA的配置及用法详解
2019/07/25 Python
使用keras实现孪生网络中的权值共享教程
2020/06/11 Python
美国婴儿和儿童家具网上商店:ABaby.com
2018/07/02 全球购物
Proenza Schouler官方网站:纽约女装和配饰品牌
2019/01/03 全球购物
工厂总经理岗位职责
2014/02/07 职场文书
毕业论文评语大全
2014/04/29 职场文书
党支部反对四风思想汇报
2014/10/10 职场文书
如何用threejs实现实时多边形折射
2021/05/07 Javascript
详解Java线程池是如何重复利用空闲线程的
2021/06/26 Java/Android
Python基本数据类型之字符串str
2021/07/21 Python