У меня есть простая рабочая форма, в которой я отправляю сообщения с помощью форм Netlify. Формы Netlify довольно просты, и вам просто нужно добавить
name="contact" data-netlify="true" method="POST"
и Netlify выполняет всю внутреннюю работу
Это выглядит примерно так:
<template>
<form ref="contact" name="contact" action="/success"
data-netlify="true" method="POST" @submit.prevent="submit()">
<input type="text" />
<button type="submit"> Send </button>
</form>
</template>
<script>
export default {
methods: {
submit() {
this.$refs.contact.submit()
},
},
}
</script>
Приведенный выше код работает должным образом. Теперь я пытаюсь добавить плагин 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
. Интересно то, что если я запускаю document.querySelector('.form').submit()
в своей функции submit (), она работает.
Я думаю, что моя заявка плохая, или, может быть, я делаю что-то не так.