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


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 相关文章推荐
学习ExtJS form布局
Oct 08 Javascript
jQuery 自动增长的文本输入框实现代码
Apr 02 Javascript
基于BootStrap Metronic开发框架经验小结【六】对话框及提示框的处理和优化
May 12 Javascript
Javascript实现汉字和拼音互转的终极方案
Oct 19 Javascript
微信小程序 详解页面跳转与返回并回传数据
Feb 13 Javascript
jQuery获取Table某列的值(推荐)
Mar 03 Javascript
详解tween.js的使用教程
Sep 14 Javascript
解决vue-router进行build无法正常显示路由页面的问题
Mar 06 Javascript
Vue子组件向父组件通信与父组件调用子组件中的方法
Jun 22 Javascript
微信小程序 Animation实现图片旋转动画示例
Aug 22 Javascript
详解Node.js amqplib 连接 Rabbit MQ最佳实践
Jan 24 Javascript
微信小程序中data-key属性之数据传输(经验总结)
Aug 22 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中MD5函数使用实例代码
2008/06/07 PHP
php的ajax框架xajax入门与试用介绍
2010/12/19 PHP
输入值/表单提交参数过滤有效防止sql注入的方法
2013/12/25 PHP
dedecms函数分享之获取某一栏目所有子栏目
2014/05/19 PHP
php下pdo的mysql事务处理用法实例
2014/12/27 PHP
php实现的任意进制互转类分享
2015/07/07 PHP
PHP中的self关键字详解
2019/06/23 PHP
javascript 写类方式之一
2009/07/05 Javascript
谈谈对offsetleft兼容性的理解
2015/11/11 Javascript
Kindeditor单独调用单图上传增加预览功能的实例
2017/07/31 Javascript
angular2系列之路由转场动画的示例代码
2017/11/09 Javascript
关于redux-saga中take使用方法详解
2018/02/27 Javascript
Vue 父子组件数据传递的四种方式( inheritAttrs + $attrs + $listeners)
2018/05/04 Javascript
nodejs更改项目端口号的方法
2018/05/13 NodeJs
BootStrap table实现表格行拖拽效果
2018/12/01 Javascript
前端路由&amp;webpack基础配置详解
2019/06/10 Javascript
django 发送邮件和缓存的实现代码
2018/07/18 Python
python构建基础的爬虫教学
2018/12/23 Python
Opencv+Python实现图像运动模糊和高斯模糊的示例
2019/04/11 Python
python频繁写入文件时提速的方法
2019/06/26 Python
在SQLite-Python中实现返回、查询中文字段的方法
2019/07/17 Python
关于Flask项目无法使用公网IP访问的解决方式
2019/11/19 Python
DataFrame.groupby()所见的各种用法详解
2020/06/14 Python
Python 操作 MySQL数据库
2020/09/18 Python
Pandas中DataFrame交换列顺序的方法实现
2020/12/14 Python
python日志通过不同的等级打印不同的颜色(示例代码)
2021/01/13 Python
JENNIFER BEHR官网:各种耳环和发饰
2020/06/07 全球购物
社区敬老月活动实施方案
2014/02/17 职场文书
名企HR怎样看待求职信
2014/02/23 职场文书
促销活动计划书
2014/05/02 职场文书
反腐倡廉演讲稿
2014/05/22 职场文书
护理见习报告范文
2014/11/03 职场文书
2015年大学元旦晚会活动策划书
2014/12/09 职场文书
五一劳动节活动总结
2015/02/09 职场文书
Python并发编程实例教程之线程的玩法
2021/06/20 Python
vue-cil之axios的二次封装与proxy反向代理使用说明
2022/04/07 Vue.js