You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vee Validate可重复表单主联系人Checkbox校验错误清除问题

问题原因

你当前遇到的校验错误不消失的核心原因是:自定义校验规则仅会在当前交互的Checkbox对应的ValidationProvider上触发,你修改其他行的primaryContact状态时,其余行的主联系人校验器没有自动执行重新校验,导致旧的错误信息残留。

解决方案

按照以下步骤修改即可解决问题,且不会影响其他字段的校验规则和错误提示:

  1. 给每个主联系人的ValidationProvider设置唯一的vid标识,方便后续精准调用
    修改模板中对应部分代码:
<ValidationProvider
  #default="{ errors }"
  :rules="{ chk_primary_contact: [contactDtos, item.id] }"
  name="Primary contact"
  :vid="`PrimaryContact-${item.id}`"
>
  1. 给主联系人Checkbox添加change事件监听,触发所有主联系人校验器重新校验
    修改Checkbox代码:
<b-form-checkbox
  v-model="item.primaryContact"
  :state="errors.length > 0 ? false : null"
  @change="triggerPrimaryContactValidate"
>
  1. 在methods中新增主动触发校验的方法
triggerPrimaryContactValidate() {
  this.contactDtos.forEach(item => {
    // 拿到对应行的主联系人校验实例,执行校验
    const validateInstance = this.$refs.contactValidation.$refs[`PrimaryContact-${item.id}`]
    validateInstance?.validate()
  })
}
可选优化

你当前代码中b-form-checkbox同时使用了v-model和:checked属性属于冗余写法,v-model已经实现了双向绑定,可直接删除:checked="item.primaryContact"属性。

内容的提问来源于stack exchange,提问作者ecasper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 06:51:02