登录
首页 >  文章 >  前端

ElementUI表单动态校验:解决回显延迟校验错乱

时间:2025-03-28 11:43:00 249浏览 收藏

本文针对Element UI表单动态校验中,数据回显延迟导致校验错乱的问题提出解决方案。由于异步接口响应慢,依赖接口数据的校验规则可能出现先生效后失效的情况,导致必填项校验提示错乱,例如星号消失但提示仍然存在。文章分析了这种由`rules`属性依赖多个异步变量引起的问题,并通过将`required: false`替换为空数组`[]`的简单方法有效解决了校验规则错乱,避免了用户体验的负面影响,确保表单校验的准确性和及时性。

Element UI表单动态校验:数据回显延迟导致校验错乱如何解决?

Element UI表单动态校验及数据回显延迟引发的校验问题解决方案

在使用Element UI构建表单时,动态校验经常会遇到挑战,尤其当校验规则依赖异步接口数据时。接口响应慢会导致校验规则错乱,例如:必填项的星号消失,但必填提示仍然存在。本文分析此类问题,并提供有效的解决方法。

问题描述:

组件的rules属性依赖多个变量:propertyInfo.propertyCategoryisCutomaddedshowEstAdressbuieditNewDataRule。只有当propertyInfo.propertyCategory等于1,且isCutomadded为false,showEstAdressbui为true,editNewDataRule为true时,buildingNameWithCulture字段才需要必填校验(required: true);否则不需要校验(required: false)。由于isCutomaddedshowEstAdressbui依赖异步接口,接口响应慢导致required属性先设置为true,随后又变为false,从而造成星号消失但必填提示依然存在的现象。

代码片段(原代码):

1
<el-form-item :rules="propertyInfo.propertyCategory == 1 && !isCutomadded && showEstAdressbui && editNewDataRule ? rules.buildingNameWithCulture : [{ required: false }]" label="座數" prop="buildingNameWithCulture"></el-form-item>

解决方案:

required: false的情况用空数组[]代替,修改后的代码如下:

代码片段(修改后代码):

1
<el-form-item :rules="propertyInfo.propertyCategory == 1 && !isCutomadded && showEstAdressbui && editNewDataRule ? rules.buildingNameWithCulture : []" label="座數" prop="buildingNameWithCulture"></el-form-item>

使用空数组[]代替 { required: false } 能有效解决问题。Element UI的表单校验机制在遇到空数组时,会认为该字段无需校验,从而避免了因数据回显延迟造成的校验规则错乱。这是一个简单而有效的解决方案。

今天关于《ElementUI表单动态校验:解决回显延迟校验错乱》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>