Element-ui中自动验证问题的解决

原文链接:https://www.jianshu.com/p/d2c900f7b730
Element-ui中的el-form组件自带了验证功能,方便了我们的开发。然而,在开发中经常会遇到一些莫名其妙的问题,比如表单一出来就触发了验证、验证提示出现英文等等。通过查看源代码的方式,我终于找到了问题的根源,也有了解决方法。
在我的项目的一个页面中,需要弹出表单框并填入旧数据。然而,我只要拿到旧数据并赋值到表单上时,就会触发el-form的验证,非常恼人。顺着调用栈(下图)我们可以发现是el-form-item组件的一个叫onFieldChange的方法触发了validate。应该是我们每次给表单绑定的变量重新赋值时,即赋值旧值时,触发了el.form.change事件,从而触发了表单验证。

于是,我们可以把验证方式从所有(默认)改成只在blur时才触发,这样就避免了赋值时触发change导致的验证。

然而,新的问题接踵而至,现在打开弹框不仅验证没有消失,验证结果还出现了英文提示:
在这里插入图片描述
这是为什么呢?我在validate方法里面打断点,发现rules出现了一个{ required: true },然而我并没有加这个验证条件。很明显这个验证条件没带message,导致出现了英文。

往前追踪,在getRules里面发现了这个坑的来源:如果el-form-item组件设置了required属性为true,就会加上这条坑爹的验证,产生英文提示。嗯,把el-form-item的required属性去掉就好了。
现在问题圆满解决,总结一下就是:el-form-item组件千万不要使用required属性(这个属性的初衷难道就是为了坑中文开发者的吗);验证最好要加上trigger: ‘blur’,不然每次赋值都会触发验证。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: Element-UIform 表单是一种基于Vue.js 的 UI 组件,它包含了一系列表单元素,允许你快速创建表单,并且支持表单验证。它还提供了一些特殊的表单元素,如日期选择器和文件上传等,可以帮助你构建出更加复杂的表单界面。 ### 回答2: Element-UI是一套基于Vue.js的桌面端组件库,其form表单是其一个常用的组件之一。Element-UIform表单提供了方便易用的表单创建和验证工具,能够快速地创建出美观、灵活的表单界面。 Element-UIform表单具有多种表单项类型,例如文本输入框、选择框、日期选择器等,能够满足各种不同类型的表单需求。同时,Element-UI还提供了规则验证机制,可以对表单进行必填项验证、长度验证等,保证用户输入的有效性。此外,Element-UIform表单还支持表单布局的设置,可以通过配置参数实现单列、多列等不同的布局方式,适应不同的界面布局需求。 在使用Element-UIform表单时,只需要在Vue.js的组件引入form表单组件并进行配置,即可快速创建出一个完整的表单页面。开发者只需要设置表单项的类型和验证规则等参数,Element-UI自动根据配置渲染出相应的表单界面,并对用户输入的内容进行验证。而且,Element-UIform表单还支持表单响应式的设计,能够根据不同设备的宽度进行自适应调整,确保在不同分辨率的屏幕上都能正常显示。 总之,Element-UIform表单是一个功能强大、使用方便的组件,可以快速创建出各种类型的表单界面,并提供了灵活的验证机制和布局设置,帮助开发者提高开发效率。 ### 回答3: element-ui form 表单是一个用于收集和验证用户输入信息的组件。它提供了丰富的表单元素和验证规则,方便开发者进行表单的设计和数据校验。 首先,element-uiform 表单可以用来创建各种表单元素,如输入框、下拉框、单选框、多选框等等。开发者可以根据需要选择合适的表单元素,并设置其属性、样式和事件。 其次,element-uiform 表单支持数据校验,可以通过设定验证规则来确保用户输入的数据的有效性。验证规则可以是内置的常见规则,如必填、最大长度、最小值等,也可以是自定义的规则。当用户提交表单时,element-ui 自动验证表单的字段,并对不符合规则的字段进行提示。 此外,element-uiform 表单还提供了一些特殊功能。例如,可以自定义表单校验提示信息的样式和位置;可以配置表单的布局方式,如水平布局、垂直布局等;还可以设置表单的禁用状态,使其变为只读或不可编辑状态。 总的来说,element-uiform 表单是一个强大且易用的表单组件,可以满足开发者在设计表单和实现数据校验时的需求。通过使用 form 表单,开发者可以减少开发时间和工作量,提高用户体验和数据的准确性。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值