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


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 相关文章推荐
cument.execCommand()用法深入理解
Dec 04 Javascript
JS验证 只能输入小数点,数字,负数的实现方法
Oct 07 Javascript
从零开始学习Node.js系列教程二:文本提交与显示方法
Apr 13 Javascript
用户管理的设计_jquery的ajax实现二级联动效果
Jul 13 jQuery
BootStrap的双日历时间控件使用
Jul 25 Javascript
Vue中的ref作用详解(实现DOM的联动操作)
Aug 21 Javascript
Vue2.0系列之过滤器的使用
Mar 01 Javascript
编写React组件项目实践分析
Mar 04 Javascript
详解React之key的使用和实践
Sep 29 Javascript
ES6的解构赋值实例详解
May 06 Javascript
基于leaflet.js实现修改地图主题样式的流程分析
May 15 Javascript
何时使用Map来代替普通的JS对象
Apr 29 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
PHP 动态随机生成验证码类代码
2010/04/09 PHP
PHP中echo,print_r与var_dump区别分析
2014/09/29 PHP
PHP合并数组+号和array_merge的区别
2015/06/25 PHP
如何使用php脚本给html中引用的js和css路径打上版本号
2015/11/18 PHP
prototype Element学习笔记(篇二)
2008/10/26 Javascript
js对数字的格式化使用说明
2011/01/12 Javascript
如何正确使用javascript 来进行我们的程序开发
2014/06/23 Javascript
bootstrap改变按钮加载状态
2014/12/01 Javascript
js实现点击添加一个input节点
2014/12/05 Javascript
jquery对复选框(checkbox)的操作汇总
2016/01/13 Javascript
Javascript中的迭代、归并方法详解
2016/06/14 Javascript
Web打印解决方案之普通报表打印功能
2016/08/29 Javascript
使用react-router4.0实现重定向和404功能的方法
2017/08/28 Javascript
微信小程序实现轮播图效果
2017/09/07 Javascript
删除table表格行的实例讲解
2017/09/21 Javascript
JavaScript设计模式之代理模式实例分析
2019/01/16 Javascript
解决layui的使用以及针对select、radio等表单组件不显示的问题
2019/09/05 Javascript
vscode+gulp轻松开发小程序的完整步骤
2020/10/18 Javascript
[01:15:56]2018DOTA2亚洲邀请赛3月30日 小组赛A组 TNC VS Newbee
2018/03/31 DOTA
python模拟登陆阿里妈妈生成商品推广链接
2014/04/03 Python
Python面向对象编程之继承与多态详解
2018/01/16 Python
Selenium控制浏览器常见操作示例
2018/08/13 Python
解析Python的缩进规则的使用
2019/01/16 Python
python对输出的奇数偶数排序实例代码
2020/12/04 Python
详解Html5 监听拦截Android返回键方法
2018/04/18 HTML / CSS
Volcom英国官方商店:美国殿堂级滑板、冲浪、滑雪服装品牌
2019/03/13 全球购物
介绍一下SOA和SOA的基本特征
2016/02/24 面试题
经理秘书岗位职责
2013/11/14 职场文书
好书伴我成长演讲稿
2014/05/14 职场文书
学校教研活动总结
2014/07/02 职场文书
组织生活会表态发言材料
2014/10/17 职场文书
工厂见习报告范文
2014/10/31 职场文书
2014年保育员个人工作总结
2014/12/02 职场文书
2015年青年教师工作总结
2015/05/25 职场文书
详解CSS伪元素的妙用单标签之美
2021/05/25 HTML / CSS
mysql 如何获取两个集合的交集/差集/并集
2021/06/08 MySQL