酷站(www.ku0.com)-致力于为互联网从业者提供动力!

热门关键词:  企业  as  baidu  c4rp3nt3r  美女

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

来源:互联网搜集 作者:转载 人气: 发布时间:2019-02-17
本篇文章主要介绍了微信小程序实现工作时间段选择,对大家的学习或者工作具有一定的参考学习价值,感兴趣的小伙伴们可以参考一下,也感谢大家对酷站(ku0.com)的支持。

本篇文章介绍微信小程序实现工作时间段选择。

效果图如下:



 

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);
 },


版权声明:本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 959677720#qq.cn(#换@) 举报,一经查实,本站将立刻删除。
原文链接:

相关文章

  • JavaScript实现横版菜单栏的代码

    JavaScript实现横版菜单栏的代码

    具体示例代码如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 !DOCTYPE html html lang = en head meta char......
    03-17
  • JS实现吸顶特效的代码

    JS实现吸顶特效的代码

    知识点 1.scroll家族和offset家族的结合运用 2.当nav的offsetTop大于屏幕卷去高度的时候,进行吸顶 3.添加一个固定类,如果满足条件,为nav加类名 运行效果 滚动页面时,保证导航栏吸顶 代码 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1......
    03-17
  • JS+CSS+HTML实现“代码雨”类似黑客帝国文字下落效果的代码

    JS+CSS+HTML实现“代码雨”类似黑客帝国文字下落效果的代码

    先看看JS+CSS+HTML实现代码雨类似黑客帝国文字下落最终效果: HTML代码: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 !DOCTYPE html html head meta charset = utf-8 link rel = stylesheet type = text/css href = css/ok.css rel = extern......
    03-17
  • JavaScript仿京东秒杀倒计时的代码

    JavaScript仿京东秒杀倒计时的代码

    仿京东秒杀倒计时 html代码 ? 1 2 3 4 5 6 7 8 9 10 div id = box div class = txt 秒杀倒计时/ div div class = hour / div !-- 小时与分钟之间的冒号 -- span class = h_m :/ span div class = minute / div !-- 分钟与秒之间的冒号 --......
    03-17
  • es6函数之严格模式用法

    es6函数之严格模式用法

    从es5开始,函数内部可以设定为严格模式。 function doSomething(a, b) { use strict // code} es2016做了一点修改,规定只要函数参数使用了默认值,解构赋值,或者扩展运算符,那么函数内部就不能显示设定为严格模式,否则会报错。 // ......
    03-17
  • js实现点赞效果的代码

    js实现点赞效果的代码

    javascript实现点赞或踩加一,再点一次减一的效果 好多新手在网上找不到点赞效果的代码,今天给大家分享一个采用js写的简单方法(有点错误,已修正) 效果图如下 HTML代码 可直接ctrl + c复制代码 div class=dian div id=zan img src=ima......
    03-16
  • js中类的静态方法,静态变量,实例方法,实例变量区别与用法介绍

    js中类的静态方法,静态变量,实例方法,实例变量区别与用法介绍

    1.类的静态方法 先来段代码之后分析 // JS类静态函数function BaseClass() {}// 类添加add函数BaseClass.add = function() { console.log(BaseClass add()方法被调用);};// 类方法(类的静态函数)直接调用// 类名.类方法名BaseClass.add()......
    03-14
  • 详解js中forEach,for in,for of循环的用法

    详解js中forEach,for in,for of循环的用法

    一、一般的遍历数组的方法: var array = [1,2,3,4,5,6,7];for (var i = 0; i array.length; i++) { console.log(i,array[i]);} 二、用for in的方遍历数组,得到的是索引 var array = [1,2,3,4,5,6,7];for(let index in array) { console.......
    03-14
  • JavaScript碰撞检测原理和实现

    JavaScript碰撞检测原理和实现

    1.模拟碰撞 简单模拟碰撞过程,用一个可以拖拽的div2去尝试碰撞一个固定的div1(均用绝对定位) 2.碰撞检测原理 如图所示: 使得div分别有4个距离属性( L(left),T(top),R(right),B(bottom) ). 对于div1来说,画出一个九宫格,div2在除中心以为......
    03-12
  • js使用ajax设置和获取自定义header信息的方法

    js使用ajax设置和获取自定义header信息的方法

    1、js ajax 设置自定义header 1.1 方法一: ? 1 2 3 4 5 6 7 8 9 10 11 $.ajax({ type: POST , url: Handler1.ashx , contentType: application/x-www-form-urlencoded , beforeSend: function (request) { request.setRequestHeader( to......
    03-12

最新更新