1. 程式人生 > >TypeError: value.getTime is not a function (elementUI報錯轉載 )

TypeError: value.getTime is not a function (elementUI報錯轉載 )

"TypeError: value.getTime is not a function"

2018年07月02日 16:41:24  閱讀數:2091 標籤: vueelementUI報錯debug  個人分類: elementUI  

首先說一下我使用的實際場景

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"後,測試發現,手動輸入的值都會被轉換為指定的日期格式。