Skip to content

Events

AutoVorm emits interaction-based events so parent components can listen or hook into them.

EventPayload
submitNative SubmitEvent of the form
input{ name, value, field, originalEvent, preventDefault }
blur{ name, value, field, originalEvent, preventDefault }
validate{ name, value, field, originalEvent, preventDefault }

Each event includes:

  • name: full path of the field
  • value: current value
  • field: field config from schema
  • originalEvent: native DOM event (if any)
  • preventDefault(): prevent internal handling (e.g., validation)

This allows full control over external sync, tracking, logging, or analytics.

How to Use

You can listen to these events in the parent component using Vue's event syntax:

vue
<AutoVorm
  as="form"
  @submit="onSubmit"
  @input="onFieldInput"
  @blur="onFieldBlur"
  @validate="onFieldValidate"
/>

Then define the corresponding handlers:

ts
function onSubmit(evt: SubmitEvent) {
  console.log("Form submitted", evt);
}

function onFieldInput(payload) {
  console.log("Input", payload.name, payload.value);
  if (payload.name === "email") {
    payload.preventDefault(); // prevents auto-validation
  }
}

function onFieldBlur(payload) {
  console.log("Blurred field:", payload.name);
}

function onFieldValidate(payload) {
  console.log("Validating:", payload.name);
}

This allows full control over external sync, tracking, logging, or analytics.

MIT Licensed