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 相关文章推荐
js实现ASP分页函数 HTML分页函数
Sep 22 Javascript
JQuery Tab选项卡效果代码改进版
Apr 01 Javascript
当json键为数字时的取值方法解析
Nov 15 Javascript
javascript定时器完整实例
Feb 10 Javascript
手机端转盘抽奖代码分享
Sep 10 Javascript
详解JavaScript跨域总结与解决办法
Oct 31 Javascript
vue2.0获取自定义属性的值
Mar 28 Javascript
JS获取短信验证码倒计时的实现代码
May 22 Javascript
浅谈Webpack自动化构建实践指南
Dec 18 Javascript
Vue.js 2.0和Cordova开发webApp环境搭建方法
Feb 26 Javascript
vue2.0的虚拟DOM渲染思路分析
Aug 09 Javascript
javascript 设计模式之享元模式原理与应用详解
Apr 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
修改了一个很不错的php验证码(支持中文)
2007/02/14 PHP
ZF等常用php框架中存在的问题
2008/01/10 PHP
百度ping方法使用示例 自动ping百度
2014/01/26 PHP
php cli换行示例
2014/04/22 PHP
php使用MySQL保存session会话的方法
2015/06/26 PHP
WordPress中使主题支持小工具以及添加插件启用函数
2015/12/22 PHP
PHP+MySQL实现的简单投票系统实例
2016/02/24 PHP
php微信开发之百度天气预报
2016/11/18 PHP
PDO::errorCode讲解
2019/01/28 PHP
JavaScript打开word文档的实现代码(c#)
2012/04/16 Javascript
js判断样式className同时增加class或删除class
2013/01/30 Javascript
nodejs文件操作模块FS(File System)常用函数简明总结
2014/06/05 NodeJs
Javascript实现简单的富文本编辑器附演示
2014/06/16 Javascript
js实现进度条的方法
2015/02/13 Javascript
js判断所有表单项不为空则提交表单的实现方法
2016/09/09 Javascript
jQuery实现拖拽可编辑模块功能代码
2017/01/12 Javascript
xmlplus组件设计系列之分隔框(DividedBox)(8)
2017/05/02 Javascript
深入浅析javascript继承体系
2017/10/23 Javascript
详解vue-cli项目中的proxyTable跨域问题小结
2018/02/09 Javascript
p5.js实现斐波那契螺旋的示例代码
2018/03/22 Javascript
小程序实现留言板
2018/11/02 Javascript
VUE使用 wx-open-launch-app 组件开发微信打开APP功能
2020/08/11 Javascript
Python中暂存上传图片的方法
2015/02/18 Python
python traceback捕获并打印异常的方法
2018/08/31 Python
Python Matplotlib库安装与基本作图示例
2019/01/09 Python
python utc datetime转换为时间戳的方法
2019/01/15 Python
PyTorch中permute的用法详解
2019/12/30 Python
建筑安全员岗位职责
2014/03/13 职场文书
合伙经营协议书
2014/04/18 职场文书
门店业绩提升方案
2014/06/08 职场文书
经典团队口号大全
2014/06/21 职场文书
夫妻婚内购房协议书
2014/10/05 职场文书
2016年大学生暑期社会实践方案
2015/11/26 职场文书
小学运动会开幕词
2016/03/04 职场文书
Nginx工作原理和优化总结。
2021/04/02 Servers
Java设计模式之享元模式示例详解
2022/03/03 Java/Android