DatePicker日期格式化后,报错TypeError dateObject.getTime is not a function

DatePicker日期格式化后,报错TypeError dateObject.getTime is not a function.
一、问题描述

使用element-ui的DatePicker组件时,需要把日期格式化为yyyy-mm-dd格式,且日期为必填选项,需要对其进行校验。使用代码如下:

<el-form-item label="开始时间" prop="startTime">
    <el-date-picker
        type="date"
        placeholder="选择开始日期"
        v-model="ruleForm.startTime"
        format="yyyy-MM-dd"
        value-format="yyyy-MM-dd"
    ></el-date-picker>
</el-form-item>
<script>
export default {
  data() {
    return {
      ruleForm: {
        startTime: ""
      },
      rules: {
        startTime: [
          {
            type: "date",
            required: true,
            message: "请输入开始时间",
            trigger: "change"
          }
        ]
      }
    };
  }
};
</script>

运行代码时出现vue warn,vue.runtime.esm.js?2b0e:619 [Vue warn]: Error in event handler for “el.form.change”: “TypeError: dateObject.getTime is not a function”

二、原因分析和解决方法

经实践发现由rules中的type: "date"引起的。修改方式有两种:

  • 方式一 将type: "date"改为type: “string”
rules: {
    startTime: [
        {
        type: "string",
        required: true,
        message: "请输入开始时间",
        trigger: "change"
        }
    ]
}
  • 方法二 将直接去除type: "date"即可。
rules: {
    startTime: [
        {
        required: true,
        message: "请输入开始时间",
        trigger: "change"
        }
    ]
}

原因分析:

有可能是验证时,date类型需要调用getTime函数,而指定了value-format的el-date-picker的绑定值的类型已经不再是date类型,所以会报此错。
.–参考文档.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值