在使用element-ui
的el-date-picker
組件時,需要獲取到字符串格式的時間悠就,且格式為yyyy-MM-dd HH:mm:ss
,開始寫的代碼如下:
<el-col :span="24">
<el-form-item label="注冊時間" prop="signTime">
<el-date-picker v-model="temp.signTime" type="datetime" value-format="yyyy-MM-dd HH:mm:ss" placeholder="請選擇時間"></el-date-picker>
</el-form-item>
</el-col>
校驗規(guī)則是這樣寫的:
signTime: [ { type:'date', required: true, message: '請選擇時間', trigger: 'change' }]
然后每次選擇完時間后,都會報TypeError: value.getTime is not a function
這個錯:
一直不知道是什么錯臊岸,后來試了一下去掉校驗后,該錯誤就沒了尊流,所以斷定是校驗的問題帅戒。后來仔細一看,發(fā)現(xiàn)自己的校驗規(guī)則寫的有問題:既然需要的是字符串格式的時間崖技,那校驗規(guī)則中就不能有
type: 'date'
逻住,否則校驗時就會將signTime
當做一個時間對象來處理钟哥,type:'date'
校驗規(guī)則的校驗源碼如下:
import rules from '../rule/';
import { isEmptyValue } from '../util';
function date(rule, value, callback, source, options) {
// console.log('integer rule called %j', rule);
var errors = [];
var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);
// console.log('validate on %s value', value);
if (validate) {
if (isEmptyValue(value) && !rule.required) {
return callback();
}
rules.required(rule, value, source, errors, options);
if (!isEmptyValue(value)) {
rules.type(rule, value, source, errors, options);
if (value) {
rules.range(rule, value.getTime(), source, errors, options);
}
}
}
callback(errors);
}
export default date;
所以去掉校驗規(guī)則中的type:'date',就OK了瞎访!