Vue 动态表单验证

本文探讨了在Element UI框架中,如何通过动态生成的表单路径与验证规则实现复杂表单的验证功能。详细解释了如何使用:prop属性与rules属性匹配,以及在动态场景下如何编写validator进行手动验证。

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

核心操作:FormItem 的 :prop 需要与控件的 v-model 有一致的路径。

由于验证完成后需要判断值是否为空,那这个时候需要有个地方可以映射到这个值,此时:prop这个这个值对应的就是key

在固定表单需求中,通过指定 :prop,:rules 即可等到验证功能,但是对于动态生成的表单,业务逻辑来说,也就是需要动态生成 :prop 与 :rules。比如说:

<Form :model="formItem" :rules="rules">
    <FormItem :prop="path1.path2.path3">
    </FormItem>
</Form>

验证的写法

rules : {
    //一定要与 prop 值一致
    "path1.path2.path3" : [{required: true, message: 'xx不能为空', trigger: 'blur'}]
},
//这里的路径也是需要一致的,porp中的 点会分解调用的 formItem 里面的对象
formItem : {
    path1 : {
        path2 : {path3 : ""}
    }
}

以上的写法固定表单需求是可以触发验证的,但是如何需要动态增减表单对象以及验证规则,则需要编写 validator,手动验证。

源码分析

为什么 rules 中的 "path1.path2.path3" 可以映射到 formItem中的对象。可以打开 form-item.vue 文件

在这里插入图片描述
也就是如果你是动态生产的表单,只需要按照这种规范生产rules以及在formItem里面存在相同路径的都是可以调用验证

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值