vue+element-ui 校验开始时间与结束时间的实现代码

 更新时间:2024年07月15日 10:02:51   作者:是小张吖~  
这篇文章主要介绍了vue+element-ui 校验开始时间与结束时间的代码实现,最主要的需求是开始时间不能早于当前时间,感兴趣的朋友跟随小编一起看看吧

 需求背景:开始时间不能早于当前时间(此刻之前不可选)

代码实现:

<template>
    <div>
        <ElForm v-model="basicMessage" :rules="basicMessageRules">
            <ElFormItem prop="startTime">
            <!-- 此处用到的是el-element的日期时间选择器 -->
            <!-- 通过设置type属性为datetime,即可在同一个选择器里同时进行日期和时间的选择。快捷选项的使用方法与 Date Picker 相同。 -->
            <ElDatePicker
              v-model="basicMessage.startTime"
              value-format="yyyy-MM-dd HH:mm:ss"
              type="datetime"
              :picker-options="pickerOptions"
              placeholder="选择执行开始时间" >
            </ElDatePicker>
          </ElFormItem>
          <span style="margin: 0 8px">-</span>
          <ElFormItem prop="endTime">
            <ElDatePicker
              v-model="basicMessage.endTime"
              value-format="yyyy-MM-dd HH:mm:ss"
              type="datetime"
              :picker-options="pickerOptions"
              placeholder="选择执行结束时间">
            </ElDatePicker>
          </ElFormItem>
        </ElForm>
    </div>
</template>
<script>
export default {
    data () {
        return {
            // picker-options设置日期可选范围
            disabledDate (time) {
                return time.getTime() < new Date().getTime() - 86400000
            },
            // 控制时分秒不可选
            selectableRange: (() => {
                const data = new Date()
                const hour = data.getHours()
                const minute = data.getMinutes()
                const second = data.getSeconds()
                return [`${hour}:${minute}:${second} - 23:59:59`]
            })(),
            basicMessage: {
                startTime: '',
                endTime: ''
            },
            // 自定义校验规则
            basicMessageRules: {
                startTime: { validator: this.validStartTime, trigger: 'blur' },
                endTime: { validator: this.validEndTime, trigger: 'blur' }
            }
        }
    },
    methods: {
        /* 校验活动区间 */
        validStartTime (rule, value, callback) {
            if (!value) {
                callback(new Error('请选择开始时间'))
            } else {
                if (this.basicMessage.startTime) {
                this.$refs.basicMessage.validateField('endTime')
                }
                callback()
            }
        },
        validEndTime (rule, value, callback) {
            // 判断结束时间不得晚于当前时间(看自己需求)
            if (new Date(value).getTime() < new Date().getTime()) {
                callback(new Error('结束时间不得晚于当前时间'))
            }
            if (!value) {
                callback(new Error('请选择结束时间'))
            } else {
                if (!this.basicMessage.startTime) {
                callback(new Error('请选择开始时间!'))
                } else if (Date.parse(this.basicMessage.startTime) >= Date.parse(value)) {
                callback(new Error('结束时间必须大于开始时间!'))
                } else {
                callback()
                }
            }
        }
    }
}
</script>

到此这篇关于vue+element-ui 校验开始时间与结束时间的文章就介绍到这了,更多相关vue element-ui 校验时间内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Vue github用户搜索案例分享

    Vue github用户搜索案例分享

    这篇文章主要介绍了Vue github用户搜索案例分享,文章基于Vue的相关资料展开对主题的详细介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-04-04
  • vue如何实现自定义步骤条

    vue如何实现自定义步骤条

    这篇文章主要介绍了vue如何实现自定义步骤条问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • ElementUI对table的指定列进行合算

    ElementUI对table的指定列进行合算

    本文主要介绍了ElementUI对table的指定列进行合算,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • 详解VUE调用本地json的使用方法

    详解VUE调用本地json的使用方法

    这篇文章主要介绍了VUE调用本地json的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • vue组件中传值EventBus的使用及注意事项说明

    vue组件中传值EventBus的使用及注意事项说明

    这篇文章主要介绍了vue组件中传值EventBus的使用及注意事项说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • 一文搞懂vue中provide和inject实现原理对抗平庸

    一文搞懂vue中provide和inject实现原理对抗平庸

    这篇文章主要为大家介绍了vue中provide和inject实现原理的深入理解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • 利用Vite搭建Vue3+ElementUI-Plus项目的全过程

    利用Vite搭建Vue3+ElementUI-Plus项目的全过程

    vue3如今已经成为默认版本了,相信大多数公司已经全面拥抱vue3了,下面这篇文章主要给大家介绍了关于利用Vite搭建Vue3+ElementUI-Plus项目的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • Element Steps步骤条的使用方法

    Element Steps步骤条的使用方法

    这篇文章主要介绍了Element Steps步骤条的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • vue中粘贴板clipboard的使用方法举例

    vue中粘贴板clipboard的使用方法举例

    在Web应用程序中剪贴板(Clipboard)操作是非常常见的操作之一,这篇文章主要给大家介绍了关于vue中粘贴板clipboard使用方法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-11-11
  • Vue3项目中配置TypeScript和JavaScript的兼容

    Vue3项目中配置TypeScript和JavaScript的兼容

    在Vue3开发中,常见的使用JavaScript(JS)编写代码,但也会有调整编写语言使用TypeScript(TS)的需求,因此,在Vue3项目设置中兼容TS和JS是刻不容缓的重要任务,
    2023-08-08

最新评论