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 相关文章推荐
cssQuery()的下载与使用方法
Jan 12 Javascript
JS关键字变色实现思路及代码
Feb 21 Javascript
深入理解JavaScript中的传值与传引用
Dec 09 Javascript
JS实现动态移动层及拖动浮层关闭的方法
Apr 30 Javascript
JS使用parseInt解析数字实现求和的方法
Aug 05 Javascript
js实现淡入淡出轮播切换功能
Jan 13 Javascript
利用Node.js对文件进行重命名
Mar 12 Javascript
解决Vue页面固定滚动位置的处理办法
Jul 13 Javascript
JavaScript实现淘宝京东6位数字支付密码效果
Aug 18 Javascript
JavaScript对JSON数组简单排序操作示例
Jan 31 Javascript
三分钟教你用Node做一个微信哄女友(基友)神器(面向小白)
Jun 21 Javascript
layui上传图片到服务器的非项目目录下的方法
Sep 26 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对数组排序的简单实例
2013/12/25 PHP
php环境下利用session防止页面重复刷新的具体实现
2014/01/09 PHP
ThinkPHP结合ajax、Mysql实现的客户端通信功能代码示例
2014/06/23 PHP
PHP框架Swoole定时器Timer特性分析
2014/08/19 PHP
PHP判断IP并转跳到相应城市分站的方法
2015/03/25 PHP
TP5框架实现上传多张图片的方法分析
2020/03/29 PHP
PHP字符串和十六进制如何实现互相转换
2020/07/16 PHP
javascript 火狐(firefox)不显示本地图片问题解决
2008/07/05 Javascript
ExtJS 2.2.1的grid控件在ie6中的显示问题
2009/05/04 Javascript
jQuery 动态酷效果实现总结
2009/12/27 Javascript
JS在textarea光标处插入文本的小例子
2013/03/22 Javascript
JS获取图片实际宽高及根据图片大小进行自适应
2013/08/11 Javascript
js获取或设置当前窗口url参数的小例子
2013/10/14 Javascript
jQuery+HTML5美女瀑布流布局实现方法
2015/09/21 Javascript
JavaScript的Backbone.js框架的一些使用建议整理
2016/02/14 Javascript
jQuery实现鼠标选文字发新浪微博的方法
2016/04/02 Javascript
JavaScript利用闭包实现模块化
2017/01/13 Javascript
js实现带缓动动画的导航栏效果
2017/01/16 Javascript
vue中遇到的坑之变化检测问题(数组相关)
2017/10/13 Javascript
vue router demo详解
2017/10/13 Javascript
CSS3结合jQuery实现动画效果及回调函数的实例
2017/12/27 jQuery
vue init webpack 建vue项目报错的解决方法
2018/09/29 Javascript
react+ant design实现Table的增、删、改的示例代码
2018/12/27 Javascript
Node.js实现用户评论社区功能(体验前后端开发的乐趣)
2019/05/09 Javascript
解决ele ui 表格表头太长问题的实现
2019/11/13 Javascript
超详细小程序定位地图模块全系列开发教学
2020/11/24 Javascript
[02:23]2016国际邀请赛中国区预选赛wings晋级之路
2016/06/29 DOTA
python和C语言混合编程实例
2014/06/04 Python
Python Tkinter模块实现时钟功能应用示例
2018/07/23 Python
Window10上Tensorflow的安装(CPU和GPU版本)
2020/12/15 Python
JBL澳大利亚官方商店:扬声器、耳机和音响系统
2018/05/24 全球购物
护士自荐信怎么写
2013/10/18 职场文书
播音主持女孩的自我评价分享
2013/11/20 职场文书
网络信息管理员岗位职责
2014/01/05 职场文书
幽默导游词开场白
2015/05/29 职场文书
Python循环之while无限迭代
2022/04/30 Python