TypeError: value.getTime is not a function (elementUI报错转载 )

"TypeError: value.getTime is not a function"

版权声明:本文为博主原创文章,请尊重劳动成果,未经博主允许不得转载内容。欢迎分享链接~ https://blog.csdn.net/leeleejoker/article/details/80886278

首先说一下我使用的实际场景

html代码:

 

 

js代码:

 

首先说明出现原因,elementUI的日期选择器【el-date-picker】在加上格式 

 

value-format="yyyy-MM-dd" format="yyyy-MM-dd"

 

和校验规则时

{ type: 'date', required: true, message: '请选择日期', trigger: 'change' }

 

会出现顶上问题,结合网络上各路大神的解决方案,实践得出,

解决方案如下:

校验规则 【type: 'date'】改为【type: 'string'】

 

// 原因可能是:elementUI自带的格式转换后会将绑定值转为字符串,而校验规则中的【type: 'date'】已经不匹配,至于它的报错是因为转换为字符串,不是date对象所以没有getTime这个方法了。(说是可能呢,是因为是个人推理见解,具体专业原因还要再探讨)


 

(时间选择器【el-time-picker】也有同样问题)

 

如果对改为string不放心,可以设置 :editable="false"

<el-date-picker
v-model="temp.PurchaseDate"
:editable="false"
type="date"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
placeholder="选择日期"/>
校验规则:
PurchaseDate: [{ type: 'string', required: true, message: '不能为空', trigger: 'change' }]
这样用户输入的值必定是通过程序选中的值。
但其实必要,指定type="date"后,测试发现,手动输入的值都会被转换为指定的日期格式。
 
posted @ 2018-10-19 11:35  hao_1234_1234  阅读(4719)  评论(2编辑  收藏  举报