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"
      }
    ],
   
  }
相关推荐
岁月宁静10 小时前
驾驭 AI 这匹野马:深入解析智能体 Harness 工程
vue.js·python
qq_25183645713 小时前
基于nodejs express +vue 天天商城系统设计与实现 (源码 文档)
前端·vue.js·express
小茴香35315 小时前
Vue3路由权限动态管理
前端·前端框架·vue3
前端毕业班15 小时前
uni-app 小程序样式隔离实践指南和原理分析
前端·javascript·vue.js
仿生狮子16 小时前
🎼 从文本到交互界面——GenUI 的中庸之道
前端·vue.js·markdown
用户8417948145617 小时前
vxe-gantt 甘特图在 Nuxt 中的集成与使用
vue.js
喵了几个咪18 小时前
AI重构软件开发范式:框架与脚手架为何仍是生产级开发的刚需?
vue.js·人工智能·react.js·重构·golang·ai编程
lpd_lt20 小时前
服务端类vue等页面AI测试方向
前端·vue.js·人工智能
橘子味的冰淇淋~20 小时前
优化前端性能之从“全局引入”改为“按需引入”
前端·javascript·vue.js
Vennn21 小时前
Android自动化:使用 Web 方式实现某音未读消息检查与采集
前端·javascript·vue.js