el-upload必填校验保存失败

1,154 阅读1分钟

场景:包含图片校验的表单保存的时候明明有值但是无法保存并校验失败

刚开始使用的自定义校验如下

imageSrc: [ { required: true, message: {"请上传卡片封面"}, trigger: 'change' }, ],
文件上传校验报错格式如下

image.png

于是在度娘上面搜了一大波解决方法

尝试一: 在el-upload的:on-success方法中使用

this.$refs.form.uploadElement.clearValid()

仍然无法解决,依然是保存报错依然在

尝试二: 后面又想,难道是加了:show-file-list="false"的问题,一阵捣鼓后依然无果

最后终于通过自定义校验规则解决,

const validateImageSrc = (rule, value, callback) => {
      if (!this.form.imageSrc) {
        callback(new Error('请上传卡片封面'));
      } else {
        callback();
      }
};
imageSrc: [
    { required: true, validator: validateImageSrc, trigger: 'change' },
],

搞定!!