vue form表单使用resetFields函数出现的问题

 更新时间:2022年05月27日 10:09:30   作者:长成一棵参天树  
这篇文章主要介绍了vue form表单使用resetFields函数出现的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

form表单使用resetFields函数的问题

今天想使用新增和删除使用一个dialog,这就涉及到点击添加按钮需要清空表单数据的问题,我第一个想到的是调用resetFields方法。

我直接写了之后是这样的

this.$refs[formName].resetFields()

结果直接报错,于是我就上网上百度了后,发现改成这样就不报错了。

 this.$nextTick(function() {
   const el: any = this.$refs[formName];
   el.resetFields(); 
});

于是心想肯定可以了,结果点击界面还是没反应,最后去官网看了下,发现我没有在表单的el-form-item写prop属性。

最后加上后,在点击添加按钮时候调用reset方法就可以了 。

但是在使用的时候要先设置打开model的变量为true之后再调用,因为只有设置为true后才能找到对应的dom元素。 而且还是要使用nextTick的

resetFields失效,死活不起作用的解决

由于新增、编辑、查看弹框表单用的同一个表单,但打开编辑或查看表单并关闭后,再打开新增表单,发现表单有之前的数据,resetFields失效。

分析

后查看官方文档,发现,resetFields只是对整个表单进行重置,将所有字段重置为初始值并移除校验结果,当打开编辑表单后,表单字段初始值就为编辑获取到的值,此时resetFields就是将表单字段重置为初始值,就是编辑表单获取到的值;

解决办法

eg:

vue
<el-dialog @close=“handleClose(‘userForm')”>
<el-input v-model="userForm.name>
…

…
表单 userForm = {
name: “”,
age: “”,
}

关闭弹框方法里写:

handleClose(formName) {
let resetForm = {
name: “”,
age: “”,
}
this[formName] = resetForm;//清空表单
this.$refs[formName]
.resetFields();//移除校验结果
。。。。再写关闭弹框等其他方法。。。
}

PS:表单中prop与v-model变量要一一对应

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • vue使用echarts时created里拿到的数据无法渲染的解决

    vue使用echarts时created里拿到的数据无法渲染的解决

    这篇文章主要介绍了vue使用echarts时created里拿到的数据无法渲染的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • unplugin-svg-component优雅使用svg图标指南

    unplugin-svg-component优雅使用svg图标指南

    这篇文章主要为大家介绍了unplugin-svg-component优雅使用svg图标指南,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • 一文详解Pinia和Vuex与两个Vue状态管理模式

    一文详解Pinia和Vuex与两个Vue状态管理模式

    这篇文章主要介绍了一文详解Pinia和Vuex与两个Vue状态管理模式,Pinia和Vuex一样都是是vue的全局状态管理器。其实Pinia就是Vuex5,只不过为了尊重原作者的贡献就沿用了这个看起来很甜的名字Pinia
    2022-08-08
  • vue2.0路由切换后页面滚动位置不变BUG的解决方法

    vue2.0路由切换后页面滚动位置不变BUG的解决方法

    下面小编就为大家分享一篇vue2.0路由切换后页面滚动位置不变BUG的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • Vue3中如何修改父组件传递到子组件中的值(全网少有!)

    Vue3中如何修改父组件传递到子组件中的值(全网少有!)

    大家都知道,vue是具有单向数据流的传递特性,下面这篇文章主要给大家介绍了关于Vue3中如何修改父组件传递到子组件中值的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-04-04
  • vue3使用vue-router嵌套多级路由的方法

    vue3使用vue-router嵌套多级路由的方法

    Vue3 嵌套路由的使用和 Vue2 相差不大,主要的区别是 Vue3 的路由实例化使用了 createApp() 方法,所以实例化路由时需要传入根组件,这篇文章主要介绍了vue3使用vue-router嵌套路由(多级路由),需要的朋友可以参考下
    2023-12-12
  • Vue项目安装插件并保存

    Vue项目安装插件并保存

    今天小编就为大家分享一篇关于Vue项目安装插件并保存,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • vue elementUI table表格自定义样式滚动效果

    vue elementUI table表格自定义样式滚动效果

    这篇文章主要介绍了vue elementUI table表格自定义样式滚动效果,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-08-08
  • vue项目中轮询状态更改方式(钩子函数)

    vue项目中轮询状态更改方式(钩子函数)

    这篇文章主要介绍了vue项目中轮询状态更改方式(钩子函数),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • vue微信分享 vue实现当前页面分享其他页面

    vue微信分享 vue实现当前页面分享其他页面

    这篇文章主要为大家详细介绍了vue微信分享功能,vue实现当前页面分享其他页面,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12

最新评论