一、场景

如下图所示,当触发表单验证后,输入相应的内容,表单检验通过,但是上传图片后的表单校验没有通过,需要点击表单提交触发表单提交时的校验才有效
在这里插入图片描述
在这里插入图片描述

二、原因

el-form 表单,在输入内容改变元素的值后,会触发上层 el-form-itemel.form.chang/ 'el.form.blur’事件,el-form-item 接收到此事件后,会触发表单校验

三、解决方案

1.给el-form-item 绑定 ref

代码如下(示例):

<el-form-item ref="coverImage" :label="$t('封面')" prop="coverFileCode">
   <upload-img ref="coverFileCode" biz-type="adapterRoom" biz-dtl-type="cover" @uploadSuc="successFn" @remove="removeFn" />
</el-form-item>

2. 图片上传成功后,触发校验

successFn() {
	this.formData.coverFileCode = code
    this.$refs.coverImage.$emit('el.form.blur', code)
}

注意:此处触发的事件,要与 rules 配置的一致,否则无效

rules: {
    name: [{ required: true, message: '请输入名称', trigger: 'blur' }],
    coverFileCode: [{ required: true, message: '请上传封面', trigger: 'blur' }],
}
Logo

基于 Vue 的企业级 UI 组件库和中后台系统解决方案,为数万开发者服务。

更多推荐