element-ui 时间选择器限制范围的实现(随动)


Posted in Javascript onJanuary 09, 2019

需求:

选择日期范围,但是选择范围需要在一周以内。举个栗子:假设选第一个日期为1月17日,那么1月11日以前、1月23号以后的日期都需要设为禁选状态。

方法:

考虑到有两种设计方式:

1、用两个独立时间选择器控制,实现起来比较混乱。
2、用日期范围选择器。

第一种方式没有做demo,有特殊需求的小伙伴请留言。这里选择使用日期范围选择器,使用起来可以预见代码会清爽很多。

效果图:

element-ui 时间选择器限制范围的实现(随动)

代码:

<el-date-picker
  v-model="datePick"
  type="daterange"
  value-format='yyyy-MM-dd'
  size="small"
  :picker-options="pickerOptions"
  range-separator="至"
  start-placeholder="开始日期"
  end-placeholder="结束日期">
</el-date-picker>
data() {
 let _minTime = null
 let _maxTime = null
 return {
  datePick: [new Date().format("yyyy-MM-dd") ,new Date().format("yyyy-MM-dd")], //默认选择当天,看个人需求
  pickerOptions:{
   onPick(time){
    // 如果选择了只选择了一个时间
    if (!time.maxDate) {
     let timeRange = 6*24*60*60*1000 // 6天
     _minTime = time.minDate.getTime() - timeRange // 最小时间
     _maxTime = time.minDate.getTime() + timeRange // 最大时间
    // 如果选了两个时间,那就清空本次范围判断数据,以备重选
    } else {
     _minTime = _maxTime = null
    }
   },
   disabledDate(time) {
    // onPick后触发
    // 该方法会轮询当3个月内的每一个日期,返回false表示该日期禁选
    if(_minTime && _maxTime){
     return time.getTime() < _minTime || time.getTime() > _maxTime
    }
   }
  }
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
各种效果的jquery ui(接口)介绍
Sep 17 Javascript
jquery中防刷IP流量软件影响统计的一点对策
Jul 10 Javascript
sogou地图API用法实例教程
Sep 11 Javascript
jQuery实现统计复选框选中数量
Nov 24 Javascript
JavaScript学习笔记之JS函数
Jan 22 Javascript
JavaScript中用toString()方法返回时间为字符串
Jun 12 Javascript
vue.js将unix时间戳转换为自定义时间格式
Jan 03 Javascript
jQuery实现元素的插入
Feb 27 Javascript
面试常见的js算法题
Mar 23 Javascript
通过js给网页加上水印背景实例
Jun 17 Javascript
亲自动手实现vue日历控件
Jun 26 Javascript
element-ui 实现响应式导航栏的示例代码
May 08 Javascript
JavaScript学习笔记之DOM基础操作实例小结
Jan 09 #Javascript
如何解决webpack-dev-server代理常切换问题
Jan 09 #Javascript
JavaScript学习笔记之数组基本操作示例
Jan 09 #Javascript
浅谈webpack性能榨汁机(打包速度优化)
Jan 09 #Javascript
Node.js的进程管理的深入理解
Jan 09 #Javascript
从vue源码看props的用法
Jan 09 #Javascript
浅谈关于JS下大批量异步任务按顺序执行解决方案一点思考
Jan 08 #Javascript
You might like
MySQL 日期时间函数常用总结
2012/06/12 PHP
PHP人民币金额数字转中文大写的函数代码
2013/02/27 PHP
PHP微信开发之查询城市天气
2016/06/23 PHP
Javascript中的数学函数集合
2007/05/08 Javascript
javascript 继承实现方法
2009/08/26 Javascript
javascript之querySelector和querySelectorAll使用介绍
2011/12/20 Javascript
Javascript和HTML5利用canvas构建Web五子棋游戏实现算法
2013/07/17 Javascript
JavaScript实现查找字符串中第一个不重复的字符
2014/12/29 Javascript
jquery简单实现外部链接用新窗口打开的方法
2015/05/30 Javascript
JavaScript中用于生成随机数的Math.random()方法
2015/06/15 Javascript
jquery 表单验证之通过 class验证表单不为空
2015/11/02 Javascript
使用JS中的exec()方法构造正则表达式验证
2016/08/01 Javascript
Javascript同时声明一连串(多个)变量的方法
2017/01/23 Javascript
如何获取元素的最终background-color
2017/02/06 Javascript
详解React中的组件通信问题
2017/07/31 Javascript
基于JavaScript实现带数据验证和复选框的表单提交
2017/08/23 Javascript
jQuery+koa2实现简单的Ajax请求的示例
2018/03/06 jQuery
promise和co搭配生成器函数方式解决js代码异步流程的比较
2018/05/25 Javascript
15个顶级开源JavaScript框架和库
2018/10/10 Javascript
[02:12]2015国际邀请赛 SHOWOPEN
2015/08/05 DOTA
[51:17]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.22
2019/09/05 DOTA
深入了解和应用Python 装饰器 @decorator
2019/04/02 Python
python实现的按要求生成手机号功能示例
2019/10/08 Python
python使用建议技巧分享(三)
2020/08/18 Python
Python基于爬虫实现全网搜索并下载音乐
2021/02/14 Python
Under Armour安德玛德国官网:美国高端运动科技品牌
2019/03/09 全球购物
iHerb俄罗斯:维生素、补品和天然产品
2020/07/09 全球购物
泰国在线书店:SE-ED
2020/06/21 全球购物
vue+django实现下载文件的示例
2021/03/24 Vue.js
2013年大学生的自我鉴定
2013/10/24 职场文书
政治表现评语
2014/05/04 职场文书
亮剑观后感600字
2015/06/05 职场文书
热爱劳动主题班会
2015/08/14 职场文书
标准版个人借条怎么写?以及什么是借条?
2019/08/28 职场文书
sql通过日期判断年龄函数的示例代码
2021/07/16 SQL Server
Oracle 死锁的检测查询及处理
2021/09/25 Oracle