Defined in: packages/form-core/src/FormApi.ts:954
A class representing the Form API. It handles the logic and interactions with the form state.
Normally, you will not need to create a new FormApi instance directly. Instead, you will use a framework hook/function like useForm or createForm to create a new instance for you that uses your framework's reactivity model. However, if you need to create a new instance manually, you can do so by calling the new FormApi constructor.
TFormData
TOnMount extends undefined | FormValidateOrFn<TFormData>
TOnChange extends undefined | FormValidateOrFn<TFormData>
TOnChangeAsync extends undefined | FormAsyncValidateOrFn<TFormData>
TOnBlur extends undefined | FormValidateOrFn<TFormData>
TOnBlurAsync extends undefined | FormAsyncValidateOrFn<TFormData>
TOnSubmit extends undefined | FormValidateOrFn<TFormData>
TOnSubmitAsync extends undefined | FormAsyncValidateOrFn<TFormData>
TOnDynamic extends undefined | FormValidateOrFn<TFormData>
TOnDynamicAsync extends undefined | FormAsyncValidateOrFn<TFormData>
TOnServer extends undefined | FormAsyncValidateOrFn<TFormData>
TSubmitMeta = never
new FormApi<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnDynamic, TOnDynamicAsync, TOnServer, TSubmitMeta>(opts?): FormApi<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnDynamic, TOnDynamicAsync, TOnServer, TSubmitMeta>;new FormApi<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnDynamic, TOnDynamicAsync, TOnServer, TSubmitMeta>(opts?): FormApi<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnDynamic, TOnDynamicAsync, TOnServer, TSubmitMeta>;Defined in: packages/form-core/src/FormApi.ts:1073
Constructs a new FormApi instance with the given form options.
FormOptions<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnDynamic, TOnDynamicAsync, TOnServer, TSubmitMeta>
FormApi<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnDynamic, TOnDynamicAsync, TOnServer, TSubmitMeta>
baseStore: Store<BaseFormState<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnDynamic, TOnDynamicAsync, TOnServer>>;baseStore: Store<BaseFormState<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnDynamic, TOnDynamicAsync, TOnServer>>;Defined in: packages/form-core/src/FormApi.ts:986
fieldInfo: Partial<Record<DeepKeys<TFormData>, FieldInfo<TFormData>>> = {};fieldInfo: Partial<Record<DeepKeys<TFormData>, FieldInfo<TFormData>>> = {};Defined in: packages/form-core/src/FormApi.ts:1042
A record of field information for each field in the form.
fieldMetaDerived: Store<Partial<Record<DeepKeys<TFormData>, AnyFieldLikeMeta>>>;fieldMetaDerived: Store<Partial<Record<DeepKeys<TFormData>, AnyFieldLikeMeta>>>;Defined in: packages/form-core/src/FormApi.ts:1001
formGroupApis: Set<AnyFormGroupApi>;formGroupApis: Set<AnyFormGroupApi>;Defined in: packages/form-core/src/FormApi.ts:1048
The set of currently-mounted FormGroupApi instances belonging to this form. Used by FieldApi.validate to cascade field-level changes into the validators of any group that encompasses the field.
formGroupMetaDerived: ReadonlyStore<Record<string, AnyFormGroupMeta>>;formGroupMetaDerived: ReadonlyStore<Record<string, AnyFormGroupMeta>>;Defined in: packages/form-core/src/FormApi.ts:1023
A derived store of every mounted FormGroupApi's meta, keyed by group name. Mirrors fieldMetaDerived for fields: per-group meta is computed once on the form (from baseStore.formGroupStateBase, fieldMetaDerived, and the registered formGroupApis) so reads from a FormGroupApi.store instance stay minimal.
options: FormOptions<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnDynamic, TOnDynamicAsync, TOnServer, TSubmitMeta> = {};options: FormOptions<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnDynamic, TOnDynamicAsync, TOnServer, TSubmitMeta> = {};Defined in: packages/form-core/src/FormApi.ts:971
The options for the form.
store: ReadonlyStore<FormState<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnDynamic, TOnDynamicAsync, TOnServer>>;store: ReadonlyStore<FormState<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnDynamic, TOnDynamicAsync, TOnServer>>;Defined in: packages/form-core/src/FormApi.ts:1024
get formId(): string;get formId(): string;Defined in: packages/form-core/src/FormApi.ts:1628
string
get state(): FormState<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnDynamic, TOnDynamicAsync, TOnServer>;get state(): FormState<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnDynamic, TOnDynamicAsync, TOnServer>;Defined in: packages/form-core/src/FormApi.ts:1049
FormState<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnDynamic, TOnDynamicAsync, TOnServer>
_handleSubmit(submitMeta?): Promise<void>;_handleSubmit(submitMeta?): Promise<void>;Defined in: packages/form-core/src/FormApi.ts:2413
Handles the form submission, performs validation, and calls the appropriate onSubmit or onSubmitInvalid callbacks.
TSubmitMeta
Promise<void>
clearFieldValues<TField>(field, options?): void;clearFieldValues<TField>(field, options?): void;Defined in: packages/form-core/src/FormApi.ts:2889
Clear all values within an array field.
TField extends string
TField
UpdateMetaOptions
void
FormLikeAPI.clearFieldValuesFormLikeAPI.clearFieldValuesdeleteField<TField>(field): void;deleteField<TField>(field): void;Defined in: packages/form-core/src/FormApi.ts:2677
TField extends string
TField
void
FormLikeAPI.deleteFieldFormLikeAPI.deleteFieldgetAllErrors(): object;getAllErrors(): object;Defined in: packages/form-core/src/FormApi.ts:3012
Returns form and field level errors
object
fields: Record<DeepKeys<TFormData>, {
errorMap: ValidationErrorMap;
errors: ValidationError[];
}>;fields: Record<DeepKeys<TFormData>, {
errorMap: ValidationErrorMap;
errors: ValidationError[];
}>;form: object;form: object;errorMap: ValidationErrorMap<UnwrapFormValidateOrFn<TOnMount>, UnwrapFormValidateOrFn<TOnChange>, UnwrapFormAsyncValidateOrFn<TOnChangeAsync>, UnwrapFormValidateOrFn<TOnBlur>, UnwrapFormAsyncValidateOrFn<TOnBlurAsync>, UnwrapFormValidateOrFn<TOnSubmit>, UnwrapFormAsyncValidateOrFn<TOnSubmitAsync>, UnwrapFormValidateOrFn<TOnDynamic>, UnwrapFormAsyncValidateOrFn<TOnDynamicAsync>, UnwrapFormAsyncValidateOrFn<TOnServer>>;errorMap: ValidationErrorMap<UnwrapFormValidateOrFn<TOnMount>, UnwrapFormValidateOrFn<TOnChange>, UnwrapFormAsyncValidateOrFn<TOnChangeAsync>, UnwrapFormValidateOrFn<TOnBlur>, UnwrapFormAsyncValidateOrFn<TOnBlurAsync>, UnwrapFormValidateOrFn<TOnSubmit>, UnwrapFormAsyncValidateOrFn<TOnSubmitAsync>, UnwrapFormValidateOrFn<TOnDynamic>, UnwrapFormAsyncValidateOrFn<TOnDynamicAsync>, UnwrapFormAsyncValidateOrFn<TOnServer>>;errors: NonNullable<
| UnwrapFormValidateOrFn<TOnMount>
| UnwrapFormValidateOrFn<TOnChange>
| UnwrapFormAsyncValidateOrFn<TOnChangeAsync>
| UnwrapFormValidateOrFn<TOnBlur>
| UnwrapFormAsyncValidateOrFn<TOnBlurAsync>
| UnwrapFormValidateOrFn<TOnSubmit>
| UnwrapFormAsyncValidateOrFn<TOnSubmitAsync>
| UnwrapFormValidateOrFn<TOnDynamic>
| UnwrapFormAsyncValidateOrFn<TOnDynamicAsync>
| UnwrapFormAsyncValidateOrFn<TOnServer>>[];errors: NonNullable<
| UnwrapFormValidateOrFn<TOnMount>
| UnwrapFormValidateOrFn<TOnChange>
| UnwrapFormAsyncValidateOrFn<TOnChangeAsync>
| UnwrapFormValidateOrFn<TOnBlur>
| UnwrapFormAsyncValidateOrFn<TOnBlurAsync>
| UnwrapFormValidateOrFn<TOnSubmit>
| UnwrapFormAsyncValidateOrFn<TOnSubmitAsync>
| UnwrapFormValidateOrFn<TOnDynamic>
| UnwrapFormAsyncValidateOrFn<TOnDynamicAsync>
| UnwrapFormAsyncValidateOrFn<TOnServer>>[];getFieldInfo<TField>(field): FieldInfo<TFormData>;getFieldInfo<TField>(field): FieldInfo<TFormData>;Defined in: packages/form-core/src/FormApi.ts:2581
Gets the field info of the specified field.
TField extends string
TField
FieldInfo<TFormData>
getFieldMeta<TField>(field): AnyFieldLikeMeta | undefined;getFieldMeta<TField>(field): AnyFieldLikeMeta | undefined;Defined in: packages/form-core/src/FormApi.ts:2563
Gets the metadata of the specified field.
TField extends string
TField
AnyFieldLikeMeta | undefined
FormLikeAPI.getFieldMetaFormLikeAPI.getFieldMetagetFieldValue<TField>(field): DeepValue<TFormData, TField>;getFieldValue<TField>(field): DeepValue<TFormData, TField>;Defined in: packages/form-core/src/FormApi.ts:2556
Gets the value of the specified field.
TField extends string
TField
DeepValue<TFormData, TField>
FormLikeAPI.getFieldValueFormLikeAPI.getFieldValuegetFormGroupMeta(name): AnyFormGroupMeta | undefined;getFormGroupMeta(name): AnyFormGroupMeta | undefined;Defined in: packages/form-core/src/FormApi.ts:2574
Gets the derived meta of the form group registered at the given name. Mirrors getFieldMeta for fields. Returns undefined if no FormGroupApi with that name is currently mounted.
string
AnyFormGroupMeta | undefined
handleSubmit(): Promise<void>;handleSubmit(): Promise<void>;Defined in: packages/form-core/src/FormApi.ts:2404
Handles the form submission, performs validation, and calls the appropriate onSubmit or onSubmitInvalid callbacks.
Promise<void>
FormLikeAPI.handleSubmitFormLikeAPI.handleSubmithandleSubmit(submitMeta): Promise<void>;handleSubmit(submitMeta): Promise<void>;Defined in: packages/form-core/src/FormApi.ts:2405
TSubmitMeta
Promise<void>
FormLikeAPI.handleSubmitFormLikeAPI.handleSubmitinsertFieldValue<TField>(
field,
index,
value,
options?): Promise<void>;insertFieldValue<TField>(
field,
index,
value,
options?): Promise<void>;Defined in: packages/form-core/src/FormApi.ts:2717
TField extends string
TField
number
DeepValue<TFormData, TField> extends any[] ? any[] & DeepValue<TFormData, TField>[number] : never
UpdateMetaOptions
Promise<void>
FormLikeAPI.insertFieldValueFormLikeAPI.insertFieldValuemount(): () => void;mount(): () => void;Defined in: packages/form-core/src/FormApi.ts:1657
(): void;(): void;void
moveFieldValues<TField>(
field,
index1,
index2,
options?): void;moveFieldValues<TField>(
field,
index1,
index2,
options?): void;Defined in: packages/form-core/src/FormApi.ts:2857
Moves the value at the first specified index to the second specified index within an array field.
TField extends string
TField
number
number
UpdateMetaOptions
void
FormLikeAPI.moveFieldValuesFormLikeAPI.moveFieldValuesparseValuesWithSchema(schema):
| {
fields: Record<string, StandardSchemaV1Issue[]>;
form: Record<string, StandardSchemaV1Issue[]>;
}
| undefined;parseValuesWithSchema(schema):
| {
fields: Record<string, StandardSchemaV1Issue[]>;
form: Record<string, StandardSchemaV1Issue[]>;
}
| undefined;Defined in: packages/form-core/src/FormApi.ts:3078
Parses the form's values with a given standard schema and returns issues (if any). This method does NOT set any internal errors.
StandardSchemaV1<TFormData, unknown>
The standard schema to parse the form values with.
| { fields: Record<string, StandardSchemaV1Issue[]>; form: Record<string, StandardSchemaV1Issue[]>; } | undefined
parseValuesWithSchemaAsync(schema): Promise<
| {
fields: Record<string, StandardSchemaV1Issue[]>;
form: Record<string, StandardSchemaV1Issue[]>;
}
| undefined>;parseValuesWithSchemaAsync(schema): Promise<
| {
fields: Record<string, StandardSchemaV1Issue[]>;
form: Record<string, StandardSchemaV1Issue[]>;
}
| undefined>;Defined in: packages/form-core/src/FormApi.ts:3090
Parses the form's values with a given standard schema and returns issues (if any). This method does NOT set any internal errors.
StandardSchemaV1<TFormData, unknown>
The standard schema to parse the form values with.
Promise< | { fields: Record<string, StandardSchemaV1Issue[]>; form: Record<string, StandardSchemaV1Issue[]>; } | undefined>
pushFieldValue<TField>(
field,
value,
options?): void;pushFieldValue<TField>(
field,
value,
options?): void;Defined in: packages/form-core/src/FormApi.ts:2701
Pushes a value into an array field.
TField extends string
TField
DeepValue<TFormData, TField> extends any[] ? any[] & DeepValue<TFormData, TField>[number] : never
UpdateMetaOptions
void
FormLikeAPI.pushFieldValueFormLikeAPI.pushFieldValueremoveFieldValue<TField>(
field,
index,
options?): Promise<void>;removeFieldValue<TField>(
field,
index,
options?): Promise<void>;Defined in: packages/form-core/src/FormApi.ts:2785
Removes a value from an array field at the specified index.
TField extends string
TField
number
UpdateMetaOptions
Promise<void>
FormLikeAPI.removeFieldValueFormLikeAPI.removeFieldValuereplaceFieldValue<TField>(
field,
index,
value,
options?): Promise<void>;replaceFieldValue<TField>(
field,
index,
value,
options?): Promise<void>;Defined in: packages/form-core/src/FormApi.ts:2754
Replaces a value into an array field at the specified index.
TField extends string
TField
number
DeepValue<TFormData, TField> extends any[] ? any[] & DeepValue<TFormData, TField>[number] : never
UpdateMetaOptions
Promise<void>
FormLikeAPI.replaceFieldValueFormLikeAPI.replaceFieldValuereset(values?, opts?): void;reset(values?, opts?): void;Defined in: packages/form-core/src/FormApi.ts:1809
Resets the form state to the default values. If values are provided, the form will be reset to those values instead and the default values will be updated.
TFormData
Optional values to reset the form to.
Optional options to control the reset behavior.
boolean
void
resetField<TField>(field): void;resetField<TField>(field): void;Defined in: packages/form-core/src/FormApi.ts:2924
Resets the field value and meta to default state
TField extends string
TField
void
FormLikeAPI.resetFieldFormLikeAPI.resetFieldresetFieldMeta<TField>(fieldMeta): Partial<Record<TField, AnyFieldLikeMeta>>;resetFieldMeta<TField>(fieldMeta): Partial<Record<TField, AnyFieldLikeMeta>>;Defined in: packages/form-core/src/FormApi.ts:2621
resets every field's meta
TField extends string
Partial<Record<TField, AnyFieldLikeMeta>>
Partial<Record<TField, AnyFieldLikeMeta>>
setErrorMap(errorMap): void;setErrorMap(errorMap): void;Defined in: packages/form-core/src/FormApi.ts:2948
Updates the form's errorMap
FormValidationErrorMap<TFormData, UnwrapFormValidateOrFn<TOnMount>, UnwrapFormValidateOrFn<TOnChange>, UnwrapFormAsyncValidateOrFn<TOnChangeAsync>, UnwrapFormValidateOrFn<TOnBlur>, UnwrapFormAsyncValidateOrFn<TOnBlurAsync>, UnwrapFormValidateOrFn<TOnSubmit>, UnwrapFormAsyncValidateOrFn<TOnSubmitAsync>, UnwrapFormValidateOrFn<TOnDynamic>, UnwrapFormAsyncValidateOrFn<TOnDynamicAsync>, UnwrapFormAsyncValidateOrFn<TOnServer>>
void
setFieldMeta<TField>(field, updater): void;setFieldMeta<TField>(field, updater): void;Defined in: packages/form-core/src/FormApi.ts:2600
Updates the metadata of the specified field.
TField extends string
TField
Updater<AnyFieldLikeMetaBase>
void
FormLikeAPI.setFieldMetaFormLikeAPI.setFieldMetasetFieldValue<TField>(
field,
updater,
opts?): void;setFieldValue<TField>(
field,
updater,
opts?): void;Defined in: packages/form-core/src/FormApi.ts:2637
Sets the value of the specified field and optionally updates the touched state.
TField extends string
TField
Updater<DeepValue<TFormData, TField>>
UpdateMetaOptions
void
FormLikeAPI.setFieldValueFormLikeAPI.setFieldValueswapFieldValues<TField>(
field,
index1,
index2,
options?): void;swapFieldValues<TField>(
field,
index1,
index2,
options?): void;Defined in: packages/form-core/src/FormApi.ts:2825
Swaps the values at the specified indices within an array field.
TField extends string
TField
number
number
UpdateMetaOptions
void
FormLikeAPI.swapFieldValuesFormLikeAPI.swapFieldValuesupdate(options?): void;update(options?): void;Defined in: packages/form-core/src/FormApi.ts:1731
Updates the form options and form state.
FormOptions<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnDynamic, TOnDynamicAsync, TOnServer, TSubmitMeta>
void
validateAllFields(cause): Promise<unknown[]>;validateAllFields(cause): Promise<unknown[]>;Defined in: packages/form-core/src/FormApi.ts:1855
Validates all fields according to the FIELD level validators. This will ignore FORM level validators, use form.validate({ValidationCause}) for a complete validation
ValidationCause
Promise<unknown[]>
FormLikeAPI.validateAllFieldsFormLikeAPI.validateAllFieldsvalidateArrayFieldsStartingFrom<TField>(
field,
index,
cause): Promise<unknown[]>;validateArrayFieldsStartingFrom<TField>(
field,
index,
cause): Promise<unknown[]>;Defined in: packages/form-core/src/FormApi.ts:1891
Validates the children of a specified array in the form starting from a given index until the end using the correct handlers for a given validation type.
TField extends string
TField
number
ValidationCause
Promise<unknown[]>
FormLikeAPI.validateArrayFieldsStartingFromFormLikeAPI.validateArrayFieldsStartingFromvalidateField<TField>(field, cause): any[] | Promise<any[]>;validateField<TField>(field, cause): any[] | Promise<any[]>;Defined in: packages/form-core/src/FormApi.ts:1932
Validates a specified field in the form using the correct handlers for a given validation type.
TField extends string
TField
ValidationCause
any[] | Promise<any[]>
FormLikeAPI.validateFieldFormLikeAPI.validateField