Skip to content

handleSubmit

This function will receive the form data if form validation is successful.

Type

ts
type HandleSubmitFn = (
  (data: Object, e?: Event) => void,
  (errors: Object, e?: Event) => void
) => Function
type HandleSubmitFn = (
  (data: Object, e?: Event) => void,
  (errors: Object, e?: Event) => void
) => Function

Props

SubmitHandler

A successful callback

ts
type SubmitHandler = (data: Object, e?: Event) => void
type SubmitHandler = (data: Object, e?: Event) => void

SubmitErrorHandler

An error callback.

ts
type SubmitErrorHandler = (errors: Object, e?: Event) => void
type SubmitErrorHandler = (errors: Object, e?: Event) => void

Usage

vue
<script setup>
  import { createErrorHandler, createSubmitHandler, useForm } from '@vue-hooks-form/core'
  const {
    register,
    handleSubmit,
  } = useForm({
    mode: 'onChange'
  })
  const onSubmit = createSubmitHandler((data) => {
    console.log(data)
  })
  const onError = createErrorHandler((errors) => {
    console.log(errors)
  })
</script>
<template>
  <form @submit.prevent="handleSubmit(onSubmit, onError)()">
    name: <input :="register('name', { required: true })">
    <button type="submit">
      submit
    </button>
  </form>
</template>
<script setup>
  import { createErrorHandler, createSubmitHandler, useForm } from '@vue-hooks-form/core'
  const {
    register,
    handleSubmit,
  } = useForm({
    mode: 'onChange'
  })
  const onSubmit = createSubmitHandler((data) => {
    console.log(data)
  })
  const onError = createErrorHandler((errors) => {
    console.log(errors)
  })
</script>
<template>
  <form @submit.prevent="handleSubmit(onSubmit, onError)()">
    name: <input :="register('name', { required: true })">
    <button type="submit">
      submit
    </button>
  </form>
</template>

Detail

You can easily submit form asynchronously with handleSubmit.

ts
handleSubmit(async data => await fetchAPI(data))()
handleSubmit(async data => await fetchAPI(data))()

Released under the MIT License.