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

 更新时间:2022年05月27日 10:02:40   作者:你回头我就在  
这篇文章主要介绍了vue+elementui(对话框中form表单的reset问题),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

对话框中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实现按钮级权限方案

    Vue实现按钮级权限方案

    这篇文章主要介绍了Vue按钮级权限方案,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-11-11
  • Vue组件化开发的必备技能之组件递归

    Vue组件化开发的必备技能之组件递归

    组件是可以在它们自己的模板中调用自身的,不过它们只能通过 name 选项来做这件事,下面这篇文章主要给大家介绍了关于Vue组件化开发的必备技能之组件递归的相关资料,需要的朋友可以参考下
    2022-01-01
  • Vue 2源码解读$mount函数原理

    Vue 2源码解读$mount函数原理

    这篇文章主要为大家介绍了Vue 2源码解读$mount原理示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • 详解在vue-cli项目中使用mockjs(请求数据删除数据)

    详解在vue-cli项目中使用mockjs(请求数据删除数据)

    本篇文章主要介绍了在vue-cli项目中使用mockjs(请求数据删除数据),具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • vue中的mvvm模式讲解

    vue中的mvvm模式讲解

    今天小编就为大家分享一篇关于vue中的mvvm模式讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • 基于vue2框架的机器人自动回复mini-project实例代码

    基于vue2框架的机器人自动回复mini-project实例代码

    本篇文章主要介绍了基于vue2框架的机器人自动回复mini-project实例代码,具有一定的参考价值,有兴趣的可以了解一下
    2017-06-06
  • vue 使用lodash实现对象数组深拷贝操作

    vue 使用lodash实现对象数组深拷贝操作

    这篇文章主要介绍了vue 使用lodash实现对象数组深拷贝操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • Vue动态面包屑功能的实现方法

    Vue动态面包屑功能的实现方法

    面包屑功能是我们在项目中经常遇到的功能,今天小编使用Element-UI 进行实现在vue项目中实现面包屑功能,具体实现方式大家跟随小编一起学习吧
    2019-07-07
  • vue2.0中自适应echarts图表、全屏插件screenfull的使用

    vue2.0中自适应echarts图表、全屏插件screenfull的使用

    这篇文章主要介绍了vue2.0中自适应echarts图表、全屏插件screenfull的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • ElementUI中el-tree节点的操作的实现

    ElementUI中el-tree节点的操作的实现

    这篇文章主要介绍了ElementUI中el-tree节点的操作的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02

最新评论