el-form/el-form-item表单验证

本文探讨了在Vue.js中遇到的一个表单验证与图片上传交互的场景。当用户上传图片后,表单的验证并未自动触发,导致验证失败。问题的原因在于el-form-item未接收到图片上传后的值变化事件。解决方案是为el-form-item绑定ref,并在图片上传成功后手动触发'el.form.blur'事件,确保与rules配置的触发事件一致。这样,图片上传成功后,表单校验能够正确进行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



一、场景

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

二、原因

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' }],
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值