Skip to content

<HeadlessForm /> API

A form component that provides no UI, just the form state and logic.

Props

PropTypeRequiredDescription
dataObjectYesThe form data object
validatorFormValidatorNoValidator instance (created with createEncolaValidator, createZodValidator, etc.)
submitHandlerFunctionNoForm submission handler
validateOnStringNoWhen to validate fields
rulesObjectNoDEPRECATED: Use validator prop instead
customMessagesObjectNoDEPRECATED: Use validator prop instead

DEPRECATED PROPS

The :rules and :customMessages props are deprecated in v1.3.0. Use the :validator prop with a validator factory function instead:

vue
<script setup>
import { createEncolaValidator } from '@encolajs/enforma/validators/encola'

const validator = createEncolaValidator(
  { email: 'required|email' },
  { 'email.required': 'Email is required' }
)
</script>
<template>
  <HeadlessForm :data="formData" :validator="validator" />
</template>

See the Migration Guide for complete migration instructions.

Events

EventParametersDescription
submit_success(data, formController)Emitted when form submits successfully
submit_error(error, formController)Emitted when submission fails
validation_fail(formController)Emitted when validation fails
reset(formController)Emitted when form is reset
field_changed(path, value, fieldController, formController)Emitted when any field value changes
field_focused(path, fieldController, formController)Emitted when a field receives focus
field_blurred(path, fieldController, formController)Emitted when a field loses focus
form_initialized(formController)Emitted when form is initialized

Slots

SlotPropsDescription
defaultForm state objectSlot for form content and fields

Released under the MIT License