【发布时间】:2021-12-02 14:52:15
【问题描述】:
我有一个问题我想不出解决办法 ???? 想听听您对这个问题的看法。
我创建了可重用的 Form 和 InputField 组件。 InputField 组件获取validation prop,一个函数,无论输入是否有效,都会返回真或错误信息
// InputField.vue
const validate = () => {
isValid.value = props.validation(inputValue.value);
};
// App.vue
<InputField
v-model="formData.firstName"
element="input"
required
name="First Name"
:validation="(val) => /^.{2,}$/.test(val) || 'Minimum 2 characters'"
/>
现在在Form.vue中,我有一个叫isValid的变量,如果为false,提交函数应该不起作用。
所以问题是:我如何检查表单组件中所有 InputFields 的状态(它作为插槽接收它们)以了解输入是否 isValid = true,(然后检查它们是否都为真,这很简单)
现在我正在寻找一种有效的方法来做到这一点,并确保它适用于多个表单和输入,如果我将它放在应用程序的不同位置,我不是在寻找快速破解
这是应用程序的链接:https://codesandbox.io/s/muddy-sun-0ti9m 你可以看一下就明白我在说什么了:)
我将回顾一下: 主要目标是通过传递给它们的验证函数检查所有输入是否有效,如果表单无效,它将无法提交。
谢谢大家!
【问题讨论】:
-
您考虑过使用第三方库吗?这个真的很好,我用它创建了一个完整的表单框架:vee-validate.logaretm.com/v4
-
谢谢,我去看看
-
谢谢,我采用了 vee validate,一个很棒的工具!
标签: javascript vue.js vuejs3 vue-composition-api