Element的表单验证规则,清空或填充数据如何避免自动触发
2022-10-08 17:22:18
301
{{single.collect_count}}

前言

使用Element中的form表单检查规则,编辑窗口中填充数据,新建时需清空

需要注意一点:

方法:resetField,不是把表单属性都清空,而是重置为初始值

比如form在加载渲染之前,属性已经被赋值(初始值),所以再次使用resetField不会清空表单数据,而显示初始值

可以理解为重置功能

问题

将表单数据进行清空后,出现表单rules规则自动验证提示

点击编辑,再操作新增,触发了select的change规则

经了解:

  • 可以使用v-if动态销毁,消耗性能
  • 使用官网介绍的clearValidate方法(推荐)

有网友遇到说:clearValidate对change规则不生效

经测试,更新版本后是可以解决change规则自动触发的问题

//清除表单内所有规则检测提示this.$refs['ruleForm'].clearValidate(); //可清除特定属性this.$refs['ruleForm'].clearValidate('name'); 

如有需要记得使用nextTick方法,在弹框展示出来之前,JS执行完了所以没生效,此方法会在DOM更新后的回调中执行

 this.newVersionBool = true; // 清除自动触发的表单验证 this.$nextTick(()=>{this.$refs['ruleForm'].clearValidate(); })

 保存,操作正常!

回帖
全部回帖({{commentCount}})
{{item.user.nickname}} {{item.user.group_title}} {{item.friend_time}}
{{item.content}}
{{item.comment_content_show ? '取消' : '回复'}} 删除
回帖
{{reply.user.nickname}} {{reply.user.group_title}} {{reply.friend_time}}
{{reply.content}}
{{reply.comment_content_show ? '取消' : '回复'}} 删除
回帖
收起
没有更多啦~
{{commentLoading ? '加载中...' : '查看更多评论'}}