欢迎来到代码驿站!

vue

当前位置:首页 > 网页前端 > vue

vue+elementui(对话框中form表单的reset问题)

时间:2022-08-20 08:09:21|栏目:vue|点击:

对话框中form表单的reset问题

一般在新增和编辑的时候用的都是同一个对话框和form表单,而在先点击编辑的时候form表单的resetfileds函数就会失效

解决原理

实际上结构是(通过vue类比)

  • data里面有一个form表单的初始值,
  • methods里面定义了一个resetfileds的函数
  • resetfileds函数的作用:记录在mounted生命周期执行之前最后一次form表单中对象的值,并且重新开启效验

在mounted周期中resetfileds函数会自动执行一次

实际运行:当第一次点开dialog的时候,form对象第一次被创建,dom加载,即自动运行一次resetfileds函数(此时已经记录了初始值)

在后面当再一次调用resetfileds函数的时候就会把函数中记录的对象值赋给form表单,所以如果是先点击编辑的情况下,form表单在点击新增时不会清空数据

解决办法

1:可以再新增时手动清除数据(缺点:此时resetfileds函数中记录的值并没有改变,还是当时第一次点击编辑的时候赋的值,但不影响使用)

2:第一次加载dom时如果要修改data中定义的form对象值,那么要将修改操作放在form表单dom元素加载完以后,即mounted生命周期之后(比较推荐的方式)

代码:第一次加载dom时如果要修改data中定义的form对象值,放在$nextTick中执行(即等待resetfileds函数执行以后再去把编辑或者新增的值赋值给form表单,这样子,resetfileds函数记录的就是form表单中data定义的初始化值)

element UI form表单重置无效

element 组件库里面重置有两个方法resetField和clearValidate,但是这两个方法,要用这两个方法肯定是要用ref实例化一个表单,用实例化的对象去重置表单,但是经常性的无效

实例化是

<el-form ref="operateForm" :model="form" :rules="rules">

使用方式经常是

this.$refs['operateForm'] && this.$refs['operateForm'].clearValidate()

说下解决

resetForm() {    //    注意:在这个方法中重置
      this.image = []
      this.form = {
        images: []
      }
    }

手动重置表单数据,然后用方法去重置规则状态

this.$refs['operateForm'] && this.$refs['operateForm'].clearValidate()    
//注意:在进到表单之前重置,我这边的话是弹框,我写在打开弹框的方法中的

上一篇:Vue中$once的两个实用小技巧分享

栏    目:vue

下一篇:vue-cli使用stimulsoft.reports.js的详细教程

本文标题:vue+elementui(对话框中form表单的reset问题)

本文地址:http://www.codeinn.net/misctech/211349.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有