el-form 加 v-if使用时出现的校验混乱的问题。

本文探讨了在Vue.js中处理含有多个模块的页面时遇到的表单校验问题。当用户在同一页内切换不同类型的表单时,需要清空相应字段并移除验证。通过使用`this.$refs.addForm.clearValidate()`方法可以清除校验,但可能会导致校验意外触发。为避免此问题,关键在于正确声明和管理表单数据,并在v-if中为不同字段添加key以确保正确渲染。此外,确保在保存时整体校验所有字段。

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

有同页面会有选择不同的类别,页面展示页不同模块功能的需求

在这里插入图片描述

其中这整个页面的输入框和下拉选项都是套在一个form里面的。切换的时候会有表单校验突然又冒出来的情况

在这里插入图片描述

情况说明

  1. 整个页面都是套用在一个form里面,选择内部外部不同类型的时候要清空掉相应的字段。
  2. 清空相应的字段后会调用一个去掉表单验证的方法this.$refs.addForm.clearValidate();
  3. 保存的时候会整体进行校验核查一边,所以不同模块选择基本时用v-if判断显示哪个字段。

处理相应的方法

  1. 表单校验的时候要校验的字段一定要在data里先声明。不能直接写subForm: {}
		subForm: {
                supplierType: 'NB',         // 类别
                supplierCategory: 'GSZT',   // 分类
                companyId: '',              // 采购公司
                currencyId: '',             // 币种
                licensePath: '',            // 营业执照
                companyZtId: '',            // 公司账套
                remarks: '',                // 备注
                dutyNo: '',                 // 税号/身份证号
                supplierName: '',           // 供应商名称/个人名称
                userId: '',                 // 员工id
                staffDeptId: '',            // 员工id
                staffDeptName: '',          // 员工姓名
            },
  1. v-if做不同字段展示的时候一定要加key
    在这里插入图片描述
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值