vue3 开始时间与结束时间比较验证(结束时间需要大于开始时间)

表单项

javascript 复制代码
 <el-row>
          <el-col :span="12">
            <el-form-item label="开始时间" prop="startTime">
              <el-date-picker clearable
                              v-model="form.startTime"
                              type="date"
                              value-format="YYYY-MM-DD"
                              placeholder="请选择开始时间">
              </el-date-picker>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="结束时间" prop="endTime">
              <el-date-picker clearable
                              v-model="form.endTime"
                              type="date"
                              value-format="YYYY-MM-DD"
                              placeholder="请选择结束时间">
              </el-date-picker>
            </el-form-item>
          </el-col>
        </el-row>

验证方法

javascript 复制代码
const isStartTimeAfterEndTime  = (rule, value, callback) => {
  if (!form.value.startTime || !form.value.endTime) {
    callback();
  }
  //开始时间
  const startTime= new Date(form.value.startTime);
  //结束时间
  const endTime= new Date(form.value.endTime);
  console.log(rule);
  if (endTime.getTime() < startTime.getTime()) {
    if (rule.field === "endTime") {
      callback(new Error("结束时间需要大于开始时间,请选择正确的时间!"));
    } else {
      callback(new Error("开始时间需要小于结束时间,请选择正确的时间!"));
    }
  } else {
    callback();
  }
};

在规则中使用

javascript 复制代码
rules: {
    startTime: [
      { required: true, message: "开始时间不能为空", trigger: "blur" },
      {	
        //调用定义的方法校验格式是否正确
        validator: isStartTimeAfterEndTime, trigger: "blur"
      }
    ],
    endTime: [
      { required: true, message: "结束时间不能为空", trigger: "blur" },
      {	
        //调用定义的方法校验格式是否正确
        validator: isStartTimeAfterEndTime, trigger: "blur"
      }
    ],
   
  }
相关推荐
爱分享的鱼鱼18 小时前
对比理解 Vue 响应式 API:data(), ref、reactive、computed 与 watch 详解
前端·vue.js
JS_GGbond18 小时前
【性能优化】给Vue应用“瘦身”:让你的网页快如闪电的烹饪秘籍
前端·vue.js
刘一说19 小时前
Vue Router:官方路由解决方案解析
前端·javascript·vue.js
计算机学姐19 小时前
基于php的摄影网站系统
开发语言·vue.js·后端·mysql·php·phpstorm
暴富的Tdy19 小时前
vue2/vue3前端创建脚手架并引入RBAC权限模型
vue.js·rbac
OpenTiny社区19 小时前
🎉 TinySearchBox 重磅更新:支持 Vue2,一次满足我的所有需求!
前端·javascript·vue.js
JIngJaneIL19 小时前
基于java+ vue学生选课系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot
小周同学:19 小时前
vue2 +driver 实现页面导航提示引导
vue.js
Nick_zcy19 小时前
基于Vue和Python的羽毛球拍智能推荐系统, 从“不会选羽毛球拍”到“选对拍”的一站式小工具
前端·vue.js·python·算法·推荐算法
菠菜盼娣20 小时前
vue3知识点
前端·vue.js