解决Element-UI清空表单及验证不生效的问题

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

问题描述

由于我将编辑与新增时,表单使用的是同一个data中的数据,这就导致出现了我点击了编辑后,再次点击新增时,出现了数据依旧是刚才编辑表单中的数据。

解决办法

尝试一(不推荐)

通过手动给表单中的字段赋值,期初时,能达到清除表单的效果,但是又出现了新的问题。
表单验证不通过。在一打开对话框时,就默认触发了表单的验证规则。element表单验证不生效,笔记,ui,javascript,前端,vue,elementui
查阅Element-UI官方文档,可以发现有有清除验证的方法clearValidate
element表单验证不生效,笔记,ui,javascript,前端,vue,elementui
只需将该方法写上,即可。

if (this.$refs.studentInfoRef) {
        this.$nextTick(() => {
          this.$refs.studentInfoRef.clearValidate();
        });
      }

element表单验证不生效,笔记,ui,javascript,前端,vue,elementui

尝试二(推荐)

查阅Element-UI官方文档可以发现,官方提供了一个重置表单的resetFields()方法。
element表单验证不生效,笔记,ui,javascript,前端,vue,elementui
但发现调用Element-UI官方提供的resetFields()方法并未生效。甚至还出现了以下错误Error in v-on handler: "TypeError: Cannot read properties of undefined (reading 'resetFields')"。不急,有解决办法。
element表单验证不生效,笔记,ui,javascript,前端,vue,elementui
出现上述情况,尝试用网络上普遍认为的错误(很可能是起作用的生命周期不一致)解决办法来解决。这时我们先将调用这个方法放到this.$nextTick中。
element表单验证不生效,笔记,ui,javascript,前端,vue,elementui
但是问题依旧存在。
element表单验证不生效,笔记,ui,javascript,前端,vue,elementui
阅读这个问题,可以知道,说的是这个未定义。好吧,可能还是生效的时间不对,那我就加一个条件判断,让这个存在时在去执行。

if (this.$refs.studentInfoRef) {
        this.$nextTick(() => {
          this.$refs.studentInfoRef.resetFields();
        });
      }

element表单验证不生效,笔记,ui,javascript,前端,vue,elementui
发现问题得到了解决。这时有可能是浏览器缓存的问题,还需要做的操作是需要再表单上添加@close方法。在关闭时清除清除表单,在打开时清除表单验证,这个比较靠谱的一个解决办法。
element表单验证不生效,笔记,ui,javascript,前端,vue,elementui
element表单验证不生效,笔记,ui,javascript,前端,vue,elementui

总结

在使用Element-UI重置表单的方式时,一定要记住,表单中的prop属性不要漏掉。
element表单验证不生效,笔记,ui,javascript,前端,vue,elementui

在查看方法使用时,并未提到prop这个属性,但继续往下阅读文档,就会发现,这个属性是必须的。
element表单验证不生效,笔记,ui,javascript,前端,vue,elementui
注意prop属性值需要与model中的值一致。
element表单验证不生效,笔记,ui,javascript,前端,vue,elementui
注意:this.$refs.studentInfoRef.resetFields();这一句话中,studentInfoRef需要与表单中的ref一致,且不能去其他的ref重名。文章来源地址https://www.toymoban.com/news/detail-541033.html

到了这里,关于解决Element-UI清空表单及验证不生效的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【前端】解决element-ui的form组件resetFields()方法不生效的问题

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

    2024年02月15日
    浏览(54)
  • element-ui动态表单和验证

    在使用element-ui开发中,经常会用到对动态创建的表单进行字段验证,比如新增多个类似卡片的表单,里面的字段需要做验证,此时就要使用到动态表单验证,官方文档写的有示例,但是不够清晰。除了官方示例,还可以使用循环生成多个form实现该需求。 第一种官方示例:一

    2024年02月02日
    浏览(44)
  • Element-ui 多表单同时验证

     如上图表单  [列二 列三 ]  由列一循环出来的数据  所用的校验规则相同   方法一:         拿到表单list数据循环遍历(通过正则/其他)进行校验   上图校验按实际需求只要不为空即可 方法二:         通过element表单的rules属性进行校验   定义好rules校验规则配合方法v

    2024年02月16日
    浏览(46)
  • 【vue】element-ui的form数组表单验证(循环表单验证)

    基于 vue2.0 的 element-ui 的 form 表单验证比较简单,但是有些同学可能对于 数组类型 的表单验证无从下手,这里我基于一个我自己项目中的例子,展示一下怎么进行数组的表单验证。 项目截图: 上代码,为了让大家看起来比较清晰,我删掉了无关的代码: 咱们把数组验证的部

    2024年02月07日
    浏览(53)
  • vue:element-ui表单动态验证规则

    实现当是否发送消息选择是时,业务类型字段必填。 当你在一个表单中使用 el-form 和 el-form-item 来创建表单项时, el-form-item 的 :rules 属性可以用来设置该表单项的验证规则。我们希望根据用户在 \\\"是否发送消息\\\" 这个表单项中的选择动态设置 \\\"业务类型\\\" 这个表单项的验证规则

    2024年01月23日
    浏览(46)
  • element-ui form表单,select多选时,初始自动校验问题解决

    使用 el-select 多选框配置表单校验时, 如果绑定值为空字符串,表单中的多选下拉框会自动执行校验并提示红色文字提示,体验非常不好; 原因:form表单-value1默认为空字符串 改为空数组即可解决

    2024年02月13日
    浏览(40)
  • 如何实现element-UI循环表单以及数据验证

    可能看到这篇文章,你很困惑。为啥要循环表单?其实并不难理解,我们以系统设置页面为例,一般直接按照客户需要来写表单就行了。但是吧,慢慢你会发现这并不高效,因为存在很多客户,他们对自己的需求几乎是模糊不清的,系统菜单就会经常变动,这就很浪费时间。

    2024年02月11日
    浏览(42)
  • 解决Vue+Element-UI 进行From表单校验时出现了英文提示问题

    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 在使用 form 表单时,往往会对表单字段进行校验,字段为必填项时会添加 required 属性,此时自定义 rules 规则时就会需要表单输入框输入数据删除为空时,出现英文校验提示信息 代码如下: 将requ

    2024年02月14日
    浏览(50)
  • elementUI 表单数据的校验回显在关闭之后没有重置,再次打开表单之后还显示校验信息(重置表单 element-ui的resetFields()方法不生效)

    问题现象: 因为和修改用的同一个vue页面,所以只要点开修改之后,直接点击添加,就会显示校验的提示信息,也就是表单信息没有重置   解决方法: 解决方法一:在关闭弹框的地方或者需要重置的地方调用: 截图实例:  下面是userInfo的具体展现   解决方法二:如果上面

    2024年02月15日
    浏览(53)
  • Element-UI form表单 resetFields() 重置表单无效问题

    原因: resetFields() 是将表单项重置为初始值,而这个初始值是在 Vue mounted 时赋值上去的,如果在这之前对表单进行了赋值,则初始值会改变,那么后面调用 resetFields() 则不会生效(不会是定义时的空值) 方法1:将赋值操作定义在 this.$nextTick() 中(保证了初始值不被修改)

    2024年02月11日
    浏览(77)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包