Avue 表单中如何动态设置某个字段的 required 验证规则?
我在用 Avue 做一个动态表单,有些字段是否必填要根据其他选项来决定。比如选了“个人”类型,身份证号就必填;选了“企业”,就不需要。我试过在 option 里直接改 rules,但好像没生效。
现在是这样写的:
this.option.column.forEach(col => {
if (col.prop === 'idCard') {
col.rules = [{ required: this.form.type === 'personal', message: '请输入身份证号' }];
}
})
但切换类型后,验证规则没更新,还是按初始状态走。是不是得调什么刷新方法?或者有别的写法?
两种解决思路:
第一种:用 $set 强制触发响应式
第二种:修改后重新赋值整个 option
另外提醒一下,required 这个属性最好也同步动态设置,因为有些场景下 Avue 会优先读 required 字段:
如果切换后想立即触发验证,可以手动调用一下:
试试看,应该能解决你的问题。