美文网首页
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