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 utilizes your frameworks reactivity model. However, if you need to create a new instance manually, you can do so by calling the new FormApi constructor.
const formApi: FormApi<TData> = new FormApi(formOptions: FormOptions<TData>)
const formApi: FormApi<TData> = new FormApi(formOptions: FormOptions<TData>)
An object representing the options for a form.
asyncDebounceMs?: number
asyncDebounceMs?: number
asyncAlways?: boolean
asyncAlways?: boolean
defaultValues?: TData
defaultValues?: TData
defaultState?: Partial<FormState<TData>>
defaultState?: Partial<FormState<TData>>
onSubmit?: (values: TData, formApi: FormApi<TData>) => any | Promise<any>
onSubmit?: (values: TData, formApi: FormApi<TData>) => any | Promise<any>
onSubmitInvalid?: (values: TData, formApi: FormApi<TData>) => void
onSubmitInvalid?: (values: TData, formApi: FormApi<TData>) => void
validatorAdapter?: TFormValidator
validatorAdapter?: TFormValidator
validators?: FormValidators<TFormData, TFormValidator>
validators?: FormValidators<TFormData, TFormValidator>
onMount?: (values: TData, formApi: FormApi<TData>) => ValidationError
onMount?: (values: TData, formApi: FormApi<TData>) => ValidationError
onChange?: (values: TData, formApi: FormApi<TData>) => ValidationError
onChange?: (values: TData, formApi: FormApi<TData>) => ValidationError
onChangeAsync?: (values: TData, formApi: FormApi<TData>) => ValidationError | Promise<ValidationError>
onChangeAsync?: (values: TData, formApi: FormApi<TData>) => ValidationError | Promise<ValidationError>
onChangeAsyncDebounceMs?: number
onChangeAsyncDebounceMs?: number
onBlur?: (values: TData, formApi: FormApi<TData>) => ValidationError
onBlur?: (values: TData, formApi: FormApi<TData>) => ValidationError
onBlurAsync?: (values: TData,formApi: FormApi<TData>) => ValidationError | Promise<ValidationError>
onBlurAsync?: (values: TData,formApi: FormApi<TData>) => ValidationError | Promise<ValidationError>
onBlurAsyncDebounceMs?: number
onBlurAsyncDebounceMs?: number
A class representing the Form API. It handles the logic and interactions with the form state.
options: FormOptions<TFormData> = {}
options: FormOptions<TFormData> = {}
store: Store<FormState<TFormData>>
store: Store<FormState<TFormData>>
state: FormState<TFormData>
state: FormState<TFormData>
fieldInfo: Record<DeepKeys<TFormData>, FieldInfo<TFormData, TFormValidator>> =
{} as any
fieldInfo: Record<DeepKeys<TFormData>, FieldInfo<TFormData, TFormValidator>> =
{} as any
constructor(opts?: FormOptions<TFormData, TFormValidator>)
constructor(opts?: FormOptions<TFormData, TFormValidator>)
update(options: FormOptions<TFormData, TFormValidator>)
update(options: FormOptions<TFormData, TFormValidator>)
reset()
reset()
validateAllFields(cause: ValidationCause): Promise<ValidationError[]>
validateAllFields(cause: ValidationCause): Promise<ValidationError[]>
handleSubmit()
handleSubmit()
getFieldValue<TField extends DeepKeys<TFormData>>(field: TField)
getFieldValue<TField extends DeepKeys<TFormData>>(field: TField)
getFieldMeta<TField extends DeepKeys<TFormData>>(field: TField)
getFieldMeta<TField extends DeepKeys<TFormData>>(field: TField)
getFieldInfo<TField extends DeepKeys<TFormData>>(field: TField)
getFieldInfo<TField extends DeepKeys<TFormData>>(field: TField)
setFieldMeta<TField extends DeepKeys<TFormData>>(field: TField, updater: Updater<FieldMeta>)
setFieldMeta<TField extends DeepKeys<TFormData>>(field: TField, updater: Updater<FieldMeta>)
setFieldValue<TField extends DeepKeys<TFormData>>(field: TField, updater: Updater<DeepValue<TFormData, TField>>, opts?: { touch?: boolean })
setFieldValue<TField extends DeepKeys<TFormData>>(field: TField, updater: Updater<DeepValue<TFormData, TField>>, opts?: { touch?: boolean })
pushFieldValue<TField extends DeepKeys<TFormData>>(field: TField, value: DeepValue<TFormData, TField>, opts?: { touch?: boolean })
pushFieldValue<TField extends DeepKeys<TFormData>>(field: TField, value: DeepValue<TFormData, TField>, opts?: { touch?: boolean })
insertFieldValue<TField extends DeepKeys<TFormData>>(field: TField, index: number, value: DeepValue<TFormData, TField>, opts?: { touch?: boolean })
insertFieldValue<TField extends DeepKeys<TFormData>>(field: TField, index: number, value: DeepValue<TFormData, TField>, opts?: { touch?: boolean })
removeFieldValue<TField extends DeepKeys<TFormData>>(field: TField, index: number, opts?: { touch?: boolean })
removeFieldValue<TField extends DeepKeys<TFormData>>(field: TField, index: number, opts?: { touch?: boolean })
swapFieldValues<TField extends DeepKeys<TFormData>>(field: TField, index1: number, index2: number)
swapFieldValues<TField extends DeepKeys<TFormData>>(field: TField, index1: number, index2: number)
An object representing the current state of the form.
values: TData
values: TData
errors: ValidationError[]
errors: ValidationError[]
errorMap: ValidationErrorMap
errorMap: ValidationErrorMap
isFormValidating: boolean
isFormValidating: boolean
isFormValid: boolean
isFormValid: boolean
fieldMeta: Record<DeepKeys<TData>, FieldMeta>
fieldMeta: Record<DeepKeys<TData>, FieldMeta>
isFieldsValidating: boolean
isFieldsValidating: boolean
isFieldsValid: boolean
isFieldsValid: boolean
isSubmitting: boolean
isSubmitting: boolean
isTouched: boolean
isTouched: boolean
isPristine: boolean
isPristine: boolean
isDirty: boolean
isDirty: boolean
isSubmitted: boolean
isSubmitted: boolean
isValidating: boolean
isValidating: boolean
isValid: boolean
isValid: boolean
canSubmit: boolean
canSubmit: boolean
submissionAttempts: number
submissionAttempts: number
validationMetaMap: Record<ValidationErrorMapKeys, ValidationMeta | undefined>
validationMetaMap: Record<ValidationErrorMapKeys, ValidationMeta | undefined>
An object representing the field information for a specific field within the form.
instance: FieldApi<
TFormData,
any,
Validator<unknown, unknown> | undefined,
TFormValidator
> | null
instance: FieldApi<
TFormData,
any,
Validator<unknown, unknown> | undefined,
TFormValidator
> | null
validationMetaMap: Record<ValidationErrorMapKeys, ValidationMeta | undefined>
validationMetaMap: Record<ValidationErrorMapKeys, ValidationMeta | undefined>
An object representing the validation metadata for a field. Not intended for public usage.
lastAbortController: AbortController
lastAbortController: AbortController
Your weekly dose of JavaScript news. Delivered every Monday to over 100,000 devs, for free.