el-dialog弹窗关闭时,清除弹窗中的表单验证样式

如何清除el-dialog中的表单验证

el-dialog 模态框中有个 el-form 表单子组件,每次新增和编辑都会使用该组件,如果不做处理,会遗留表单验证效果,再次打开 Dialog 模态框的时候,表单中还残留着上一次表单验证的效果,模拟:

  1. 在第一次新增时,不填写数据,表单验证效果出现;
  2. 当点击取消或者点击左上角×号后,再次进行新增或修改操作,弹窗中表单会出现上一此的验证效果
    对某一数据点击修改是出现

解决方案:

在el-dialog弹窗中加一个 v-if,,其中条件和弹窗的visible.sync的条件相同,如图:


<el-dialog :title="packageAbout" v-if="packageAboutVisible" :visible.sync="packageAboutVisible">

![具体解决方法](https://img-blog.csdnimg.cn/20191128171609181.png)
## 具体原因:
v-if切换有一个**局部编译/卸载**的过程,切换过程中合适地销毁和重建内部的事件监听和子组件;
v-if在条件第一次变为真时才开始局部编译(编译被缓存?编译被缓存后,然后再切换的时候进行局部卸载);
当关闭弹窗后,v-if的条件变为false,页面会局部卸载弹窗,清空其中的数据,自然也就清空了表单验证的样式

It ends here!!谢谢

版权声明:本文为weixin_44873050原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。