element的validate校验时间报错undefined is required

1,835 阅读1分钟

情况一:选择时间范围的时候,第一次创建,没问题,编辑的时候改了下时间,报错 undefined is required

  1. 如果你的时间范围是必填项,并且开始时间和结束时间为两个时间选择器,如下:
<el-form-item label="时间范围" required>
  <el-col :span="11">
    <el-form-item prop="beginDate">
      <el-date-picker
        v-model="beginDate"
        type="date"
        placeholder="开始日期"
        value-format="yyyy-MM-dd"
        style="width: 100%;"
      >
      </el-date-picker>
    </el-form-item>
  </el-col>
  <el-col style="text-align: center;" :span="2">-</el-col>
  <el-col :span="11">
    <el-form-item prop="endDate">
      <el-date-picker
        v-model="endDate"
        type="date"
        placeholder="结束日期"
        value-format="yyyy-MM-dd"
        style="width: 100%;"
      >
      </el-date-picker>
    </el-form-item>
  </el-col>
</el-form-item>
  1. 第一行代码的required就是导致报错的罪魁祸首,干掉它,必填标识的红* 实现很简单,把required换成一个class="is_required"
.is_required > .el-form-item__label:before {
    content: "*";
    color: #f56c6c;
    margin-right: 4px;
}

情况二:表单中的是一个简单的单一日期选择器,但是二次打开表单的时候,回显还是好的,编辑提交的时候validate报错,debugger发现值也是有的,为何还会报必填的错误???

// 目前我的解决方案是不用element的validate
// 自己封装一个校验方法
// 这种解决办法比较笨,如果您有更好的办法,欢迎在评论区里留言