Element ui 重置表单resetField()方法不生效

这篇具有很好参考价值的文章主要介绍了Element ui 重置表单resetField()方法不生效。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

vue2中resetfield失效,javascript,elementui,vue.js

 Element ui在重置表单时需要特别注意

非弹窗情况下

1.指定表单的ref是否正确 

<el-form :model="form"  ref="ruleForm" >

</el-form>


2.确定重置的表单的<el-form-item></el-form-item>是否设置了prop属性(多数是因为忽略了这一步)

例如:我们需要清空当前的登陆表单

//页面部分
<el-form :model="ruleForm"  :rules="rules" ref="ruleForm" >
 <el-form-item label="用户名:" prop="userName">
 </el-form-item> 
 <el-form-item>   
    <el-button @click="resetForm('ruleForm')">重置</el-button>
 </el-form-item>
</el-form>


//事件部分
 resetForm(formName)
 {
   this.$refs[formName].resetFields();      
 }

弹窗情况下

场景:比如我们需要做一个新增和修改的弹窗,相信各位前端大佬们肯定会把这个弹窗抽出做成一个公共组件,再去写对应功能的时候就会方便许多,但是当我们做成公共组件后,点击编辑,好的没问题,点击新增,诶这个内容是什么情况,这不是上次点击的出现的数据吗?

喔 天哪,新增的表单里怎么也被提交了,相信大家与遇见这个问题以后肯定会想,在新增的时候给他清空表单就完美解决了,但是当我们去调用resetFields()方法的时候会发现没有作用,检测了一下代码跟上面没用弹窗的时候一样的啊,为什么没有生效呢?

原因如下:

1.resetFields方法是将form表单的数据设置为初始值但是这个初始值是在form的 mounted生命周期

被赋值上去的的resetFields方法才会有效,这里继续我们对于VUE的生命周期钩子有一定的了解

vue2中resetfield失效,javascript,elementui,vue.js

 他们在这个时候会将表单的数据进行赋值,所以在mounted周期之前赋值的resetFields方法将会无效

这时我们可以在mounted周期之后使用this.$nextTick (()=>{进行表单赋值})将回调延迟到下次DOM更新循环之后执行。在修改数据之后立即使用它,然后等待DOM更新。

实例代码:

showLogin(data) 
{
  if (data.type == "add") {
    this.logTitle = "添加";
  } else if (data.type === "update") {
    this.logTitle = "编辑";
    //赋值的时候在这里将回调延迟到下次DOM更新循环之后执行
    this.$nextTick(() => {
      this.form.name = data.name;
      this.form.age = data.age;
    });
  }
},

这样一系列操作以后我们再去调用表单的重置表单就会生效啦文章来源地址https://www.toymoban.com/news/detail-802813.html

//重置表单的方法,接收参数为表单的ref指向
resetForm(formName)
 {
   this.$refs[formName].resetFields();
 }

到了这里,关于Element ui 重置表单resetField()方法不生效的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 关于element-ui中表单重置不生效的原因,及解决方法

    resetFields这个方法是将表单重置为 初始值 , 也就是说,是将表单中的数据重置为dom节点渲染时的值,而不是重置为空对象。 也就是说,当你的表单数据,是在dom节点渲染前被赋值的,那么他的初始值就不为空了。 还有就是vue中对象是不能直接赋值给另一个对象的 解决方法

    2024年02月13日
    浏览(41)
  • vue element ui重置表单的方法

    element代码部分 rest(form) 里面的form是表单的名字 vue代码部分 重点 使用方式 在按钮里面嗲用**rest(表单名称)**方法进行重置表单

    2024年02月08日
    浏览(40)
  • Vue3+Element Plus 关于Dialog弹出Form表单,使用resetFields重置无效的解决

    主要参考了element-plus官方的表单重置按钮(官方Form例子任意reset按钮),然后试了试他的ref绑定,发现可以完美解决重置问题。 第一步:给Form表单绑定ref。绑定ref 的值为refFormInstance();这里注意表单el-form-item必须有prop属性。 2.第二步:在你想要重置的地方调用重置表单方法

    2024年01月21日
    浏览(49)
  • uniapp uview微信小程序重置表单resetFields不生效

    1. 问题描述 uniapp + uview点击重置按钮,重置不生效 2. 解决 不生效原因未知,但我们可以模拟重置。 先将表单中的绑定的数据置空,然后把校验结果置空就可以了

    2024年02月16日
    浏览(47)
  • 【前端】解决element-ui的form组件resetFields()方法不生效的问题

    使用 element-ui 的 form 组件,在输入栏较多的时候,有时 resetFields 只能重置一部分输入框的值 给每个值赋值初始值为空即可 例如,需要清除的 :model=\\\"queryForm.bgnTime\\\" 、 :model=\\\"queryForm.endTime\\\" 等一系列的值,那么就不要只定义 queryForm:{} ,而是要把对象下的各个属性赋值初值为空

    2024年02月15日
    浏览(55)
  • elementui 表单 resetFields 方法不生效问题解决

    调用 elementui 官方提供的表单重置方法 resetFields 方法重置表单不生效,相信很多小伙伴都遇到过这个问题。 检查代码看每个 表单项的 prop 与 v-model 绑定的属性值命名是否相同 ,不相同的话就会导致 resetFields 方法不生效的问题,如果存在改正即可。

    2024年01月24日
    浏览(34)
  • vue3 antd项目实战——Form表单的重置【使用resetFields()重置form表单数据、清空输入框】

    文章内容 文章链接 Form表单 提交和校验 https://blog.csdn.net/XSL_HR/article/details/128495087?spm=1001.2014.3001.5501 Form表单的 嵌套使用 https://blog.csdn.net/XSL_HR/article/details/128488913?spm=1001.2014.3001.5501 Form表单的 动态校验规则 https://blog.csdn.net/XSL_HR/article/details/128437275?spm=1001.2014.3001.5501 往期文章

    2024年02月02日
    浏览(62)
  • vue element ui From表单校验不生效问题解决

    解决方案① el-from 上要使用 :model 不要使用 v-model 解决方案② el-from-item 上是否有加 prop ,并确定 prop 是不是和编写的规则相同 解决方案③ $refs[formName] 与 $refs.formName 注意事项 前者提交的时候要传参 @click=\\\"submitForm(\\\'ruleForm\\\')\\\" 不然不生效 解决方案④网上有人说 未在 data 里面声

    2024年02月11日
    浏览(38)
  • vue2 - 基于Element UI实现上传Excel表单数据功能

    批量数据上传后台,需要从后台下载一个固定格式的 Excel表格,然后在表格里面添加数据,将数据格式化,再上传给后台,后台做解析处理,往数据库添加数据 点击导入excel按钮,跳转到上传excel功能页面,点击上传或者是通过拖拽都能实现excel表格上传 通过Element UI的 el-di

    2024年02月13日
    浏览(37)
  • 解决 element-ui 表单清空的问题:先编辑后新增 resetFields() 无效

    首先需要注意几个问题: 我们需要为每个 form-item 加上 prop 属性,要不然无法清空(大部分的问题就是出在这) resetFields() 方法是重置表单,重置为初始值,而不是设置为空值 在 resetFields() 方法之前,如果修改了 data 里的表单默认值,那么重置以后就是你修改以后的值,而不

    2024年02月13日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包