【vue】表单设计-结束时间不可在开始时间之前

记录一下昨天遇到的一个小问题,优化了时间设定的代码。
表单内容:

          <a-col :span="24">
            <a-form-item label="结束时刻" :labelCol="labelCol" :wrapperCol="wrapperCol">
              <j-date placeholder="请选择结束时刻" v-decorator="['EndTime',validatorRules.EndTime]" :trigger-change="true"
                      :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" @change="timeCalculator" style="width: 100%"/>
            </a-form-item>
          </a-col>

绑定了开始时间和结束时间的验证方法,但只要选择了开始时间,只需要重新设定一下结束时间的规则。
validatorRules.EndTime

       return{
        validatorRules: {
          StartTime:{
            rules: [
              { required: true, message:'请选择开始时间!'},
            ]
          },
          EndTime:{
            rules: [
              { required: true, validator: validateEndTime},
            ]
          },
         }
        }

设定检修开始时间为必填选项,给检修结束时间绑定一个自定义的验证方法。
validator: validateEndTime

     data(){
      const validateEndTime = (rule, value, callback) => {
        let StartTime=this.queryParam.StartTime;//v-decorator标签属性值
        if (value === '') {
          callback(new Error('请选择结束时间'))
        } else {
          if (
            new Date(StartTime).getTime() >=
            new Date(value).getTime()
          ) {
            callback(new Error('结束时间必须大于开始时间!'))
          } else {
            callback()
          }
        }
      }
    }

结果:报错后无法提交数据,只有重新选择了才可以。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值