ElementUI实现开始时间和结束时间验证

ElementUI实现开始时间和结束时间验证

Form表单中的开始日期和结束日期

前端开发过程中经常用到DatePicker日期选择器设置开始日期和结束日期,一般情况下开始时间不能大>于结束时间。

form表单中的开始日期和结束日期渲染如下代码所示:

 <el-form-item label="开始日期" prop="startTime">
                <el-date-picker
                  v-model="insertForm.startTime"
                  type="date"
                  placeholder="选择开始日期"
                  :picker-options="editStartOptions"
                ></el-date-picker>
 </el-form-item>
 <el-form-item label="结束日期" prop="endTime">
                <el-date-picker
                  v-model="insertForm.endTime"
                  type="date"
                  placeholder="选择结束日期"
                  :picker-options="editStopOptions"
                ></el-date-picker>
 </el-form-item>

使用picker–options属性设置如果选择了开始日期,再选择结束日期时,则结束日期下拉框中比开始日期小的日期禁止选择;
如果先选择结束日期,再选择开始日期时,则开始日期下拉框中比结束日期大的日期禁止选择。

实现效果如下所示:
在这里插入图片描述

校验代码如下:

data(){
 
 return{
 
   rules:{
            startTime: [
          {
            required: true,
            message: "请选择开始时间",
            trigger: ["blur", "change"]
          }
        ],
        endTime: [
          {
            required: true,
            message: "请选择结束时间",
            trigger: ["blur", "change"]
          }
        ]
    }
   
    editStartOptions: {
        disabledDate: time => {
          if (!this.insertForm.endTime) {
            return time.getTime() < new Date(1970 - 1 - 1).getTime();   //禁止选择1970年以前的日期
          } else {
            return time.getTime() > new Date(this.insertForm.endTime);
          }
        }
      },
      editStopOptions: {
        disabledDate: time => {
        //开始时间可以和结束时间相同增加
        let startTime= new Date(this.insertForm.startTime);
            startTime.setDate(startTime.getDate() - 1);
          return (
            time.getTime() < startTime || time.getTime() < new Date(1970 - 1 - 1).getTime()    //禁止选择1970年以前的日期
          );
        }
      },
 }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值