我有一个简单的工作表格,其中使用Netlify表格进行提交。 Netlify表单非常简单,只需添加
name="contact" data-netlify="true" method="POST"
和Netlify完成所有后端工作
它看起来像这样:
上面的代码按预期工作。现在,我尝试在表单中添加vee-validate插件,您需要在其中添加两个组件 ValidationProvider , ValidationObserver 。这是我得到错误的地方。 我的代码现在看起来像这样:
<template>
<ValidationObserver ref="contact" tag="form" name="contact" action="/success" data-netlify="true" method="POST" @submit.prevent="submit()">
<ValidationProvider rules="required" tag="div">
<input type="text" />
</ValidationProvider>
<button type="submit"> Send </button>
</ValidationObserver>
</template>
<script>
import { ValidationProvider,ValidationObserver } from 'vee-validate'
export default {
methods: {
async submit() {
const isValid = await this.$refs.contact.validate()
if (!isValid) {
return
}
this.$refs.contact.submit()
},}
</script>
请注意,我使用tag="form"
将组件呈现为表单,因为如果仅包装表单,Netlify将无法识别该表单。
在我的submit()
中,我首先运行Validation,如果结果是肯定的,则像以前一样提交表单,但遇到此错误this.$refs.contact.submit is not a function
。有趣的是,如果我在可以正常运行的Submit()函数中运行document.querySelector('.form').submit()
。
我认为我提交的内容不好,或者也许我做错了。