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