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


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 相关文章推荐
Javascript miscellanea -display data real time, using window.status
Jan 09 Javascript
JavaScript 组件之旅(三):用 Ant 构建组件
Oct 28 Javascript
jQuery制作简洁的多级联动Select下拉框
Dec 23 Javascript
JavaScript分秒倒计时器实现方法
Feb 02 Javascript
JavaScript中指定函数名称的相关方法
Jun 04 Javascript
JQuery validate 验证一个单独的表单元素实例
Feb 17 Javascript
[js高手之路]寄生组合式继承的优势详解
Aug 28 Javascript
jQuery 实现鼠标画框并对框内数据选中的实例代码
Aug 29 jQuery
快速解决select2在bootstrap模态框中下拉框隐藏的问题
Aug 10 Javascript
jQuery实现图片随机切换、抽奖功能(实例代码)
Oct 23 jQuery
React学习之受控组件与数据共享实例分析
Jan 06 Javascript
jquery实现简易验证插件封装
Sep 13 jQuery
微信小程序实现展示评分结果功能
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
服务器web工具 php环境下
2010/12/29 PHP
discuz加密解密函数使用方法和中文注释
2014/01/21 PHP
php静态文件生成类实例分析
2015/01/03 PHP
Laravel实现用户注册和登录
2015/01/23 PHP
PHP实现将base64编码字符串转换成图片示例
2018/06/22 PHP
如何在PHP中生成随机数
2020/06/04 PHP
js脚本学习 比较实用的基础
2006/09/07 Javascript
jquery 子窗口操作父窗口的代码
2009/09/21 Javascript
js 上下左右键控制焦点(示例代码)
2013/12/14 Javascript
无闪烁更新网页内容JS实现
2013/12/19 Javascript
jQuery分别获取选中的复选框值的示例
2014/06/17 Javascript
javascript如何写热点图
2015/12/08 Javascript
js点击文本框弹出可选择的checkbox复选框
2016/02/03 Javascript
JavaScript实现弹出DIV层同时页面背景渐变成半透明效果
2016/03/25 Javascript
JS实现iframe编辑器光标位置插入内容的方法(兼容IE和Firefox)
2016/06/24 Javascript
jQuery内容过滤选择器用法示例
2016/09/09 Javascript
JS 拦截全局ajax请求实例解析
2016/11/29 Javascript
iview中Select 选择器多选校验方法
2018/03/15 Javascript
JS实现的DOM插入节点操作示例
2018/04/04 Javascript
vue中的数据绑定原理的实现
2018/07/02 Javascript
vue中各选项及钩子函数执行顺序详解
2018/08/25 Javascript
tsconfig.json配置详解
2019/05/17 Javascript
nuxt配置通过指定IP和端口访问的实现
2020/01/08 Javascript
vue 实现用户登录方式的切换功能
2020/04/14 Javascript
Python写的Socks5协议代理服务器
2014/08/06 Python
Python API 自动化实战详解(纯代码)
2019/06/11 Python
Python3操作Excel文件(读写)的简单实例
2019/09/02 Python
python实现操作文件(文件夹)
2019/10/31 Python
Python基础之函数原理与应用实例详解
2020/01/03 Python
举例讲解Python装饰器
2020/12/24 Python
CSS3 实现童年的纸飞机
2019/05/05 HTML / CSS
HTML5自定义data-* data(obj)属性和jquery的data()方法的使用
2012/12/13 HTML / CSS
2014年中秋节活动总结
2014/08/29 职场文书
音乐教育专业自荐信
2014/09/18 职场文书
MySQL触发器的使用
2021/05/24 MySQL
如何用Python搭建gRPC服务
2021/06/30 Python