关于vue表单Element表单验证事件初次加载就触发了校验的问题 - 如何清除验证结果

表单页面每次没有点击提交按钮就触发了,每次进入页面就有一个红色框框标满错误提示:

原因:

data数据加载以后 - dom加载好 -  ajax从后台api接口拉取数据回来,更新了data.form触发了表单校验

处理方式;

在ajax数据加载以后:(不要在mounted里面,因为执行顺序很大概率是: mounted -  (dom complete) - fetchData( ajax )  -  (dom complete) )

你如果在mounted里面nextTick清除表单验证结果,在fetchData以后又验证了就等于前面的无效了

// 首次加载清除验证事件
console.log('ajax complete')
this.$nextTick(() => {
    // DOM 更新了
    console.log("dom update complete")
    this.$refs["ref"].clearValidate()
})
// this.$refs["ref"].clearValidate() //直接这样使用无效 - dom都没更新完毕这里移除无效

form表单的结构

<el-form ref="ref" :rules="rules" :model="form" label-position="top">

nextTick的文档:

https://cn.vuejs.org/v2/api/index.html#Vue-nextTick

 

 

https://juejin.cn/post/6844903557372575752

 

关于ticket的几个问题:

1  ticket是干嘛的,在ajax的callback里面放置 

this.$nextTick 为啥有时候会出现 
this.$refs["staffFormRef"].clearValidate() 的 undefined 呢
 
2 为啥清除表单验证事件必须在 ajax callback 里面直接在mounted不行么

 

posted @   许伟强  阅读(11056)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· Qt个人项目总结 —— MySQL数据库查询与断言
点击右上角即可分享
微信分享提示