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中provide和inject实现原理对抗平庸
这篇文章主要为大家介绍了vue中provide和inject实现原理的深入理解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-04-04
利用Vite搭建Vue3+ElementUI-Plus项目的全过程
vue3如今已经成为默认版本了,相信大多数公司已经全面拥抱vue3了,下面这篇文章主要给大家介绍了关于利用Vite搭建Vue3+ElementUI-Plus项目的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下2022-07-07
Vue3项目中配置TypeScript和JavaScript的兼容
在Vue3开发中,常见的使用JavaScript(JS)编写代码,但也会有调整编写语言使用TypeScript(TS)的需求,因此,在Vue3项目设置中兼容TS和JS是刻不容缓的重要任务,2023-08-08


最新评论