场景

DateTimePicker是ElementUI的日期和时间共存的选择器。

有时需要限制选择器的选择范围。

效果

实现

实现需要使用组件的picker-option属性,具体参照官方文档:

http://element-cn.eleme.io/#/zh-CN/component/datetime-picker#datetimepicker-ri-qi-shi-jian-xuan-ze-qi

picker-option是object类型。

Picker Options

参数 说明 类型 可选值 默认值
shortcuts 设置快捷选项,需要传入 { text, onClick } 对象用法参考 demo 或下表 Object[]
disabledDate 设置禁用状态,参数为当前日期,要求返回 Boolean Function
firstDayOfWeek 周起始日 Number 1 到 7 7

注意disabledDate这个参数的使用,参数为当前日期,要求返回是Boolean,类型是Function。

举例

添加验证规则

控件显示:

<el-form-item label="支付截止日期:" prop="finalPayTime"><el-date-pickerv-model="demandBid.finalPayTime" format="yyyy-MM-dd HH:mm"type="datetime"placeholder="支付截止日期" :picker-options="pickerOptions5">
</el-date-picker>

其中:picker-options="pickerOptions5" 所以在return中添加:

 pickerOptions5: {},

注意prop属性是 finalPayTime

在rules中添加验证规则:

  rules: {finalPayTime: [{required: true, message: '请选择支付截止日期'},{validator: checkFinalPayTime, trigger: 'blur' }],

执行验证方法:checkFinalPayTime

在data中声明方法:

var checkFinalPayTime = (rule, value, callback) => {//var valueDate = moment(value).format('YYYY-MM-DD')if (new Date(value) > new Date(this.demandBid.goUpTime)) {return callback(new Error('支付截止日期必须早于去程起飞时间'));}else if(new Date(value) <new Date()){return callback(new Error('选择的支付截止日期无效'));}else{callback();}};

限制选择范围

在此页面的created方法中执行初始化时间控件的操作,即在加载完后就执行相应的方法。

export default {created() {this.initDateTimePicker(demandObj);},

如果有多个日期选择空间,则在initDateTimePicke方法中依次声明

 methods: {/*** 初始化日期控件配置* */initDateTimePicker(demandObj) {this.initGoUpTime(demandObj);this.initGoDownTime(demandObj);this.initReturnUpTime(demandObj);this.initReturnDownTime(demandObj);this.initFinalPayTime(demandObj);this.initFinalOutTicketTime(demandObj);},

这里以 this.initFinalPayTime(demandObj);为例

 /*** 支付截止日期控件配置* @param demandObj*/initFinalPayTime(demandObj) {this.pickerOptions5 = Object.assign({}, this.pickerOptions5, {disabledDate: (time) => {if (demandObj.goStartTime != null && demandObj.goStartTime != undefined && demandObj.goStartTime != '') {if ( new Date(demandObj.goStartTime).getTime() > Date.now()) {return new Date(demandObj.goStartTime).getTime() < time.getTime() ||   new Date() > time.getTime() + 3600 * 1000 * 24;} else {return new Date() > time.getTime() + 3600 * 1000 * 24}} else {return new Date() > time.getTime() + 3600 * 1000 * 24}}})},

注意:

比较时间时要用getTime()来获取毫秒数比较。

要将字符床时间放在new Date()去转换为时间格式。

注意disabledDate返回是Boolean,即要选择当前时间之后,就要小于当前时间而不是大于。

在 time.getTime() + 3600 * 1000 * 24加一天是让当天可选。

ElementUI的DateTimePicker组件添加验证规则以及限制选择范围相关推荐

  1. ElementUI的DateTimePicker组件修改时间格式

    场景 ElementUI的dateTimePicker组件是一个日期和时间共存的选择器. 有时我们需要规定选择时的时间格式,这时就要用这个组件的format属性. 使用 <el-form-ite ...

  2. vue 表单验证正则_vue elementUI如何自定义表单验证规则

    一.elementUI自带了一部分表单验证规则,本文讲解如何使用自定义验证规则来完成密码的二次验证. 1.1.首先添加验证邮箱和电话规则和正则表达式// 验证邮箱的规则 var checkEmail  ...

  3. shiro学习(23):动态添加验证规则3

    工具idea 先看看数据库 shiro_role_permission 数据 shiro_user shiro_user_role 数据 目录结构 在pom.xml里面添加 <?xml vers ...

  4. shiro学习(22):动态添加验证规则2

    工具idea 先看看数据库 shiro_role_permission 数据 shiro_user shiro_user_role 数据 目录结构 在pom.xml里面添加 <?xml vers ...

  5. shiro学习(21):动态添加验证规则1

    工具idea 先看看数据库 shiro_role_permission 数据 shiro_user shiro_user_role 数据 目录结构 在pom.xml里面添加 <?xml vers ...

  6. [【前端】element-ui的时间组件<el-time-picker>出现无法选择或无法滚动的解决思路

    一个Java菜鸟的前端笔记 问题描述: 时间组件<el-time-picker>无论是新增和编辑均出现无法选择或无法滚动的情况,并且在返回详情时组件是能够成功回显已保存的时间数据的,但就是 ...

  7. 后盾网lavarel视频项目---自定义验证和自定义验证规则

    后盾网lavarel视频项目---自定义验证和自定义验证规则 一.总结 一句话总结: 1.自定义验证就是用的自定义验证请求类:php artisan make:request AdminPost 2. ...

  8. PHP动态验证,php-动态更改验证规则

    我正在处理包含用户数据,特别是电话号码字段的表单.通常不需要电话号码,因此模型中唯一的验证规则是usphone规则.但是,如果用户正在提交此表格,则电话号码变得必不可少.我以为我可以在运行中简单地添加 ...

  9. v-for 循环生成多个表单元素 给动态生成的表单元素绑定值并且添加校验规则

    需求:点击新增按钮 能不断生成下级部门,所以我再data中定义了一个变量 空数组 subordinateDepartmentNum:[] 默认值设置为[] 给增加按钮添加点击事件 每点击一次按钮  s ...

最新文章

  1. 2020上半年收集到的优质AI文章 – AI+和+AI
  2. Smali插桩打日志
  3. 学计算机可以玩手机吗,但就一般工作学习使用而言,是否可以把手机CPU作为电脑CPU使用?...
  4. 程序员如何从初中级历练为高级开发者?
  5. java实现zlib压缩解压缩:文件、byte[]字节数组,数据流
  6. Ubuntu 12.04重启后丢失resolv.conf问题
  7. Information Extraction
  8. 关于flash跨域问题
  9. yolox:exceeding yolo series in 2021
  10. 桌面管理 | Windows自带工具
  11. 鸿蒙系统可以微信吗,微信鸿蒙版下载-微信华为鸿蒙操作系统版 v7.0.21-91优手机网...
  12. 涉密计算机u盘管理,涉密U盘管理规定.doc
  13. 24只胡萝卜的管理精神(节录)
  14. 转载为什么USART的RX和TX和SPI的MISO、MOSI都被配置成推挽输出,他们还能正常工作
  15. VMware不支持虚拟化的Intel VT-X/EPT
  16. 微信个人号机器人接口
  17. 分段函数用python表达_python文章分段
  18. 【毕业设计】2-基于单片机控制的直流电机调速系统设计(原理图+仿真+答辩论文+答辩PPT)
  19. easyExcel 导入Excel数据
  20. 小米智能摄像机云台Pro如何插入视频监控存储卡

热门文章

  1. List Set Map的区别
  2. JUC系列(十一) | Java 8 CompletableFuture 异步编程
  3. 史上最详细Docker搭建Redis Cluster集群环境 值得收藏 每步都有图,不用担心学不会
  4. python中简述对象和类的关系_Python学习笔记(七)对象和类
  5. linux进程被中断打断,linux – 当中断处理程序被另一个中断中断时,中断上下文如何“恢复”?...
  6. jmeter 取json值_JMeter中JSON数据处理
  7. python访问数据库日志文件_python利用inotify实现把nginx日志实时写入数据库
  8. checksum linux 命令_linux常用命令总结
  9. 分析 linux 日志文件,linux精讲|操作系统常见日志文件分析
  10. 手机号归属地区编码_这些关于手机号码的冷知识 你知道吗