美文网首页
element-ui 组件 el-date-picker使用遇到

element-ui 组件 el-date-picker使用遇到

作者: iced_lemonade | 来源:发表于2018-05-14 11:26 被阅读0次

在使用element-uiel-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>

校验规则是这样写的:

signTime: [ { type:'date', required: true, message: '请选择时间', trigger: 'change' }]

然后每次选择完时间后,都会报TypeError: value.getTime is not a function这个错:


一直不知道是什么错,后来试了一下去掉校验后,该错误就没了,所以断定是校验的问题。后来仔细一看,发现自己的校验规则写的有问题:既然需要的是字符串格式的时间,那校验规则中就不能有type: 'date',否则校验时就会将signTime当做一个时间对象来处理,type:'date'校验规则的校验源码如下:
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;

所以去掉校验规则中的type:'date',就OK了!

相关文章

网友评论

      本文标题:element-ui 组件 el-date-picker使用遇到

      本文链接:https://www.haomeiwen.com/subject/sqeddftx.html