Loading...
+ {{else if this.request.value}} +{{field.state.meta.errors.[0]}}
+{{field.state.meta.errors.[0]}}
+First name: {{this.firstName.current}}
+ +{{this.errors.current.onDynamic.firstName}}
+ +} +``` + +## Usage with Other Validation Logic + +You can use `onDynamic` validation alongside other validation logic, such as `onChange` or `onBlur`. + +```gjs +import Component from '@glimmer/component'; +import { revalidateLogic, createForm } from '@tanstack/ember-form'; + +export default class MyForm extends Component { + form = createForm(this, { + defaultValues: { + firstName: '', + lastName: '', + }, + validationLogic: revalidateLogic(), + validators: { + onChange: ({ value }) => { + if (!value.firstName) { + return { firstName: 'A first name is required' }; + } + return undefined; + }, + onDynamic: ({ value }) => { + if (!value.lastName) { + return { lastName: 'A last name is required' }; + } + return undefined; + }, + }, + }); + + errors = this.form.useStore((state) => state.errorMap); + + +{{this.errors.current.onChange.firstName}}
+{{this.errors.current.onDynamic.lastName}}
+{{this.title}}
+ <@form.Field @name="firstName" as |field|> +{{this.title}}
+ <@form.Field @name="firstName" as |field|> +