gpt4 book ai didi

vuejs2 - Vue.js - Element UI - 如何了解表单验证的状态

转载 作者:行者123 更新时间:2023-12-02 09:33:09 25 4
gpt4 key购买 nike

我正在使用 vue-jselement-ui

我想检查表单验证的状态,而无需单击提交按钮

示例

https://jsfiddle.net/nw8mw1s2/

重现步骤

单击每个字段

验证由模糊触发

开始填写不同的输入

问题

当验证最后一个输入时,isFormValidated 变为 true,我该如何执行此操作。

换句话说,我怎么说“如果没有字段出现状态错误,则将 valudateState 设为 true”

提示

我想我们可以检查表单的每个 formItemvalidateState 。但我不知 Prop 体如何做。

最佳答案

我将创建一个新方法(例如 updateIsFormValidated),并将其绑定(bind)到表单的 native focusout 事件:

<el-form :model="ruleForm2" @focusout.native="updateIsFormValidated" ...>

每当表单中的任何输入失去焦点时,都会触发此方法。它将尝试检查表单组件中的每个字段是否已成功验证,如果任何表单项的验证状态仍处于待处理状态,则每 100 毫秒触发一次:

updateIsFormValidated() {
let fields = this.$refs.ruleForm2.fields;
if (fields.find((f) => f.validateState === 'validating')) {
setTimeout(() => { this.updateIsFormValidated() }, 100);
} else {
this.isFormValidated = fields.reduce((acc, f) => {
let valid = (f.isRequired && f.validateState === 'success');
let notErroring = (!f.isRequired && f.validateState !== 'error');
return acc && (valid || notErroring);
}, true);
}
}

Here's a working fiddle.

关于vuejs2 - Vue.js - Element UI - 如何了解表单验证的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44399041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com