vue + element 检验开始时间与结束时间

 vue中使用element-ui后,设置开始时间不能大于结束时间(自定义规则校验)

  •  template部分
  <el-form-item label="开始日期"
                prop="startTime">
    <el-date-picker v-model="formData.startTime"
                    type="datetime"
                    format='yyyy-MM-dd HH:mm'
                    value-format="yyyy-MM-dd HH:mm"
                    placeholder="开始日期">
    </el-date-picker>
  </el-form-item>
  <el-form-item label="结束日期"
                prop="endTime">
    <el-date-picker v-model="formData.endTime"
                    type="datetime"
                    format='yyyy-MM-dd HH:mm'
                    value-format="yyyy-MM-dd HH:mm"
                    placeholder="结束日期">
    </el-date-picker>
  </el-form-item>
  • 校验部分
data(){
       let validateStartTime = (rule, value, callback) => {
        if (!value) {
            callback(new Error("起始日期不能为空"));
        } else {
            // 如果结束日期没选
            if (!this.formData.endTime) {
                callback();
            } else {
                // 结束日期有进行判断
                if (this.compareDate(value, this.formData.endTime)) {
                    // 如果起始在结束之前
                    callback();
                } else {
                    callback(new Error("起始日期不能再结束日期之后,请重新选择"));
                }
            }
        }
    };
    let validateEndTime = (rule, value, callback) => {
        if (!value) {
            callback(new Error("结束日期不能为空"));
        } else {
            if (!this.formData.startTime) {
                callback();
            } else {
                // 起始日期有
                if (this.compareDate(this.formData.startTime, value)) {
                    callback();
                } else {
                    callback(new Error("结束日期不能在起始日期前,请重新选择"));
                }
            }
        }
    };
    rules: {
      startTime: [
        {
          trigger: ["blur"],
          validator: validateStartTime,
        },
      ],
      endTime: [
        {
          trigger: ["blur"],
          validator: validateEndTime,
        },
      ],
    },
},
methods:{
    // 比较两个日期
    compareDate(start, end) {
      return new Date(end).getTime() > new Date(start).getTime();
    },
}

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值