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


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 相关文章推荐
js 绑定带参数的事件以及手动触发事件
Apr 27 Javascript
Js为表单动态添加节点内容的方法
Feb 10 Javascript
jquery ztree实现模糊搜索功能
Feb 25 Javascript
jQuery实现按钮点击遮罩加载及处理完后恢复的效果
Jun 07 Javascript
BootStrap智能表单demo示例详解
Jun 13 Javascript
js移动焦点到最后位置的简单方法
Nov 25 Javascript
解决bootstrap模态框数据缓存的问题方法
Aug 10 Javascript
JavaScript实现构造json数组的方法分析
Aug 17 Javascript
小程序使用分包的示例代码
Mar 23 Javascript
微信小程序学习总结(五)常见问题实例小结
Jun 04 Javascript
js实现上传图片到服务器
Apr 11 Javascript
详解JavaScript中Arguments对象用途
Aug 30 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与XML的PDF文档生成技术
2006/10/09 PHP
PHP 设计模式之观察者模式介绍
2012/02/22 PHP
解决FastCGI 进程超过了配置的活动超时时限的问题
2013/07/03 PHP
php 检查电子邮件函数(自写)
2014/01/16 PHP
php+jQuery实现的三级导航栏下拉菜单显示效果
2017/08/10 PHP
PHP实现获取ip地址的5种方法,以及插入用户登录日志操作示例
2019/02/28 PHP
Yii框架Session与Cookie使用方法示例
2019/10/14 PHP
yii2.0框架多模型操作示例【添加/修改/删除】
2020/04/13 PHP
使用jQuery Ajax功能时需要注意的一个问题(内存溢出)
2012/05/30 Javascript
jquery(hide方法)隐藏指定元素实例
2013/11/11 Javascript
AngularJS语法详解(续)
2015/01/23 Javascript
javascript跨域的方法汇总
2015/10/23 Javascript
浅析node连接数据库(express+mysql)
2015/11/30 Javascript
Javascript对象字面量的理解
2016/06/22 Javascript
jQuery数组处理函数整理
2016/08/03 Javascript
Nodejs基于LRU算法实现的缓存处理操作示例
2017/03/17 NodeJs
JS实现快速比较两个字符串中包含有相同数字的方法
2017/09/11 Javascript
npm 下载指定版本的组件方法
2018/05/17 Javascript
详解JavaScript 的变量
2019/03/08 Javascript
详解JS取出两个数组中的不同或相同元素
2019/03/20 Javascript
javascript读取本地文件和目录方法详解
2020/08/06 Javascript
[01:08:30]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant BO3 第一场 2月28日
2021/03/11 DOTA
django开发教程之利用缓存文件进行页面缓存的方法
2017/11/10 Python
python实现手机销售管理系统
2019/03/19 Python
Scrapy-Redis结合POST请求获取数据的方法示例
2019/05/07 Python
Python函数的迭代器与生成器的示例代码
2020/06/18 Python
Python extract及contains方法代码实例
2020/09/11 Python
python 基于PYMYSQL使用MYSQL数据库
2020/12/24 Python
客房服务员岗位职责
2015/02/09 职场文书
品质保证书格式
2015/02/28 职场文书
神秘岛读书笔记
2015/07/01 职场文书
女性健康讲座主持词
2015/07/04 职场文书
如何写一份成功的商业计划书
2019/06/25 职场文书
餐厅开业活动方案
2019/07/08 职场文书
八年级作文之感悟亲情
2019/11/20 职场文书
Nginx+Windows搭建域名访问环境的操作方法
2022/03/17 Servers