FieldApi

Class: FieldApi<TParentData, TName, TData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TFormOnMount, TFormOnChange, TFormOnChangeAsync, TFormOnBlur, TFormOnBlurAsync, TFormOnSubmit, TFormOnSubmitAsync, TFormOnServer, TParentSubmitMeta>

Defined in: packages/form-core/src/FieldApi.ts:863

A class representing the API for managing a form field.

Normally, you will not need to create a new FieldApi instance directly. Instead, you will use a framework hook/function like useField or createField 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 FieldApi constructor.

Type Parameters

• TParentData

• TName extends DeepKeys<TParentData>

• TData extends DeepValue<TParentData, TName>

• TOnMount extends undefined | FieldValidateOrFn<TParentData, TName, TData>

• TOnChange extends undefined | FieldValidateOrFn<TParentData, TName, TData>

• TOnChangeAsync extends undefined | FieldAsyncValidateOrFn<TParentData, TName, TData>

• TOnBlur extends undefined | FieldValidateOrFn<TParentData, TName, TData>

• TOnBlurAsync extends undefined | FieldAsyncValidateOrFn<TParentData, TName, TData>

• TOnSubmit extends undefined | FieldValidateOrFn<TParentData, TName, TData>

• TOnSubmitAsync extends undefined | FieldAsyncValidateOrFn<TParentData, TName, TData>

• TFormOnMount extends undefined | FormValidateOrFn<TParentData>

• TFormOnChange extends undefined | FormValidateOrFn<TParentData>

• TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn<TParentData>

• TFormOnBlur extends undefined | FormValidateOrFn<TParentData>

• TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn<TParentData>

• TFormOnSubmit extends undefined | FormValidateOrFn<TParentData>

• TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn<TParentData>

• TFormOnServer extends undefined | FormAsyncValidateOrFn<TParentData>

• TParentSubmitMeta

Constructors

new FieldApi()

ts
new FieldApi<TParentData, TName, TData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TFormOnMount, TFormOnChange, TFormOnChangeAsync, TFormOnBlur, TFormOnBlurAsync, TFormOnSubmit, TFormOnSubmitAsync, TFormOnServer, TParentSubmitMeta>(opts): FieldApi<TParentData, TName, TData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TFormOnMount, TFormOnChange, TFormOnChangeAsync, TFormOnBlur, TFormOnBlurAsync, TFormOnSubmit, TFormOnSubmitAsync, TFormOnServer, TParentSubmitMeta>
new FieldApi<TParentData, TName, TData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TFormOnMount, TFormOnChange, TFormOnChangeAsync, TFormOnBlur, TFormOnBlurAsync, TFormOnSubmit, TFormOnSubmitAsync, TFormOnServer, TParentSubmitMeta>(opts): FieldApi<TParentData, TName, TData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TFormOnMount, TFormOnChange, TFormOnChangeAsync, TFormOnBlur, TFormOnBlurAsync, TFormOnSubmit, TFormOnSubmitAsync, TFormOnServer, TParentSubmitMeta>

Defined in: packages/form-core/src/FieldApi.ts:995

Initializes a new FieldApi instance.

Parameters

opts

FieldApiOptions<TParentData, TName, TData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TFormOnMount, TFormOnChange, TFormOnChangeAsync, TFormOnBlur, TFormOnBlurAsync, TFormOnSubmit, TFormOnSubmitAsync, TFormOnServer, TParentSubmitMeta>

Returns

FieldApi<TParentData, TName, TData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TFormOnMount, TFormOnChange, TFormOnChangeAsync, TFormOnBlur, TFormOnBlurAsync, TFormOnSubmit, TFormOnSubmitAsync, TFormOnServer, TParentSubmitMeta>

Properties

form

ts
form: FormApi<TParentData, TFormOnMount, TFormOnChange, TFormOnChangeAsync, TFormOnBlur, TFormOnBlurAsync, TFormOnSubmit, TFormOnSubmitAsync, TFormOnServer, TParentSubmitMeta>;
form: FormApi<TParentData, TFormOnMount, TFormOnChange, TFormOnChangeAsync, TFormOnBlur, TFormOnBlurAsync, TFormOnSubmit, TFormOnSubmitAsync, TFormOnServer, TParentSubmitMeta>;

Defined in: packages/form-core/src/FieldApi.ts:907

A reference to the form API instance.


name

ts
name: DeepKeys<TParentData>;
name: DeepKeys<TParentData>;

Defined in: packages/form-core/src/FieldApi.ts:931

The field name.


options

ts
options: FieldApiOptions<TParentData, TName, TData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TFormOnMount, TFormOnChange, TFormOnChangeAsync, TFormOnBlur, TFormOnBlurAsync, TFormOnSubmit, TFormOnSubmitAsync, TFormOnServer, TParentSubmitMeta>;
options: FieldApiOptions<TParentData, TName, TData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TFormOnMount, TFormOnChange, TFormOnChangeAsync, TFormOnBlur, TFormOnBlurAsync, TFormOnSubmit, TFormOnSubmitAsync, TFormOnServer, TParentSubmitMeta>;

Defined in: packages/form-core/src/FieldApi.ts:935

The field options.


store

ts
store: Derived<FieldState<TParentData, TName, TData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TFormOnMount, TFormOnChange, TFormOnChangeAsync, TFormOnBlur, TFormOnBlurAsync, TFormOnSubmit, TFormOnSubmitAsync>>;
store: Derived<FieldState<TParentData, TName, TData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TFormOnMount, TFormOnChange, TFormOnChangeAsync, TFormOnBlur, TFormOnBlurAsync, TFormOnSubmit, TFormOnSubmitAsync>>;

Defined in: packages/form-core/src/FieldApi.ts:959

The field state store.


timeoutIds

ts
timeoutIds: object;
timeoutIds: object;

Defined in: packages/form-core/src/FieldApi.ts:986

formListeners

ts
formListeners: Record<ListenerCause, null | Timeout>;
formListeners: Record<ListenerCause, null | Timeout>;

listeners

ts
listeners: Record<ListenerCause, null | Timeout>;
listeners: Record<ListenerCause, null | Timeout>;

validations

ts
validations: Record<ValidationCause, null | Timeout>;
validations: Record<ValidationCause, null | Timeout>;

Accessors

state

Get Signature

ts
get state(): FieldState<TParentData, TName, TData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TFormOnMount, TFormOnChange, TFormOnChangeAsync, TFormOnBlur, TFormOnBlurAsync, TFormOnSubmit, TFormOnSubmitAsync>
get state(): FieldState<TParentData, TName, TData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TFormOnMount, TFormOnChange, TFormOnChangeAsync, TFormOnBlur, TFormOnBlurAsync, TFormOnSubmit, TFormOnSubmitAsync>

Defined in: packages/form-core/src/FieldApi.ts:983

The current field state.

Returns

FieldState<TParentData, TName, TData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TFormOnMount, TFormOnChange, TFormOnChangeAsync, TFormOnBlur, TFormOnBlurAsync, TFormOnSubmit, TFormOnSubmitAsync>

Methods

clearValues()

ts
clearValues(opts?): void
clearValues(opts?): void

Defined in: packages/form-core/src/FieldApi.ts:1319

Clear all values from the array.

Parameters

opts?

UpdateMetaOptions

Returns

void


getInfo()

ts
getInfo(): FieldInfo<TParentData>
getInfo(): FieldInfo<TParentData>

Defined in: packages/form-core/src/FieldApi.ts:1249

Gets the field information object.

Returns

FieldInfo<TParentData>


getMeta()

ts
getMeta(): FieldMeta<TParentData, TName, TData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TFormOnMount, TFormOnChange, TFormOnChangeAsync, TFormOnBlur, TFormOnBlurAsync, TFormOnSubmit, TFormOnSubmitAsync>
getMeta(): FieldMeta<TParentData, TName, TData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TFormOnMount, TFormOnChange, TFormOnChangeAsync, TFormOnBlur, TFormOnBlurAsync, TFormOnSubmit, TFormOnSubmitAsync>

Defined in: packages/form-core/src/FieldApi.ts:1217

Returns

FieldMeta<TParentData, TName, TData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TFormOnMount, TFormOnChange, TFormOnChangeAsync, TFormOnBlur, TFormOnBlurAsync, TFormOnSubmit, TFormOnSubmitAsync>


getValue()

ts
getValue(): TData
getValue(): TData

Defined in: packages/form-core/src/FieldApi.ts:1202

Gets the current field value.

Returns

TData

Deprecated

Use field.state.value instead.


handleBlur()

ts
handleBlur(): void
handleBlur(): void

Defined in: packages/form-core/src/FieldApi.ts:1670

Handles the blur event.

Returns

void


handleChange()

ts
handleChange(updater): void
handleChange(updater): void

Defined in: packages/form-core/src/FieldApi.ts:1663

Handles the change event.

Parameters

updater

Updater<TData>

Returns

void


insertValue()

ts
insertValue(
   index, 
   value, 
   opts?): void
insertValue(
   index, 
   value, 
   opts?): void

Defined in: packages/form-core/src/FieldApi.ts:1266

Inserts a value at the specified index, shifting the subsequent values to the right.

Parameters

index

number

value

TData extends any[] ? TData<TData>[number] : never

opts?

UpdateMetaOptions

Returns

void


mount()

ts
mount(): () => void
mount(): () => void

Defined in: packages/form-core/src/FieldApi.ts:1092

Mounts the field instance to the form.

Returns

Function

Returns

void


moveValue()

ts
moveValue(
   aIndex, 
   bIndex, 
   opts?): void
moveValue(
   aIndex, 
   bIndex, 
   opts?): void

Defined in: packages/form-core/src/FieldApi.ts:1310

Moves the value at the first specified index to the second specified index.

Parameters

aIndex

number

bIndex

number

opts?

UpdateMetaOptions

Returns

void


parseValueWithSchema()

ts
parseValueWithSchema(schema): 
  | undefined
  | StandardSchemaV1Issue[]
parseValueWithSchema(schema): 
  | undefined
  | StandardSchemaV1Issue[]

Defined in: packages/form-core/src/FieldApi.ts:1711

Parses the field's value with the given schema and returns issues (if any). This method does NOT set any internal errors.

Parameters

schema

StandardSchemaV1<TData, unknown>

The standard schema to parse this field's value with.

Returns

| undefined | StandardSchemaV1Issue[]


parseValueWithSchemaAsync()

ts
parseValueWithSchemaAsync(schema): Promise<
  | undefined
| StandardSchemaV1Issue[]>
parseValueWithSchemaAsync(schema): Promise<
  | undefined
| StandardSchemaV1Issue[]>

Defined in: packages/form-core/src/FieldApi.ts:1723

Parses the field's value with the given schema and returns issues (if any). This method does NOT set any internal errors.

Parameters

schema

StandardSchemaV1<TData, unknown>

The standard schema to parse this field's value with.

Returns

Promise< | undefined | StandardSchemaV1Issue[]>


pushValue()

ts
pushValue(value, opts?): void
pushValue(value, opts?): void

Defined in: packages/form-core/src/FieldApi.ts:1254

Pushes a new value to the field.

Parameters

value

TData extends any[] ? TData<TData>[number] : never

opts?

UpdateMetaOptions

Returns

void


removeValue()

ts
removeValue(index, opts?): void
removeValue(index, opts?): void

Defined in: packages/form-core/src/FieldApi.ts:1292

Removes a value at the specified index.

Parameters

index

number

opts?

UpdateMetaOptions

Returns

void


replaceValue()

ts
replaceValue(
   index, 
   value, 
   opts?): void
replaceValue(
   index, 
   value, 
   opts?): void

Defined in: packages/form-core/src/FieldApi.ts:1279

Replaces a value at the specified index.

Parameters

index

number

value

TData extends any[] ? TData<TData>[number] : never

opts?

UpdateMetaOptions

Returns

void


setErrorMap()

ts
setErrorMap(errorMap): void
setErrorMap(errorMap): void

Defined in: packages/form-core/src/FieldApi.ts:1686

Updates the field's errorMap

Parameters

errorMap

ValidationErrorMap<UnwrapFieldValidateOrFn<TName, TOnMount, TFormOnMount>, UnwrapFieldValidateOrFn<TName, TOnChange, TFormOnChange>, UnwrapFieldAsyncValidateOrFn<TName, TOnChangeAsync, TFormOnChangeAsync>, UnwrapFieldValidateOrFn<TName, TOnBlur, TFormOnBlur>, UnwrapFieldAsyncValidateOrFn<TName, TOnBlurAsync, TFormOnBlurAsync>, UnwrapFieldValidateOrFn<TName, TOnSubmit, TFormOnSubmit>, UnwrapFieldAsyncValidateOrFn<TName, TOnSubmitAsync, TFormOnSubmitAsync>>

Returns

void


setMeta()

ts
setMeta(updater): void
setMeta(updater): void

Defined in: packages/form-core/src/FieldApi.ts:1222

Sets the field metadata.

Parameters

updater

Updater<FieldMetaBase<TParentData, TName, TData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TFormOnMount, TFormOnChange, TFormOnChangeAsync, TFormOnBlur, TFormOnBlurAsync, TFormOnSubmit, TFormOnSubmitAsync>>

Returns

void


setValue()

ts
setValue(updater, options?): void
setValue(updater, options?): void

Defined in: packages/form-core/src/FieldApi.ts:1209

Sets the field value and run the change validator.

Parameters

updater

Updater<TData>

options?

UpdateMetaOptions

Returns

void


swapValues()

ts
swapValues(
   aIndex, 
   bIndex, 
   opts?): void
swapValues(
   aIndex, 
   bIndex, 
   opts?): void

Defined in: packages/form-core/src/FieldApi.ts:1301

Swaps the values at the specified indices.

Parameters

aIndex

number

bIndex

number

opts?

UpdateMetaOptions

Returns

void


update()

ts
update(opts): void
update(opts): void

Defined in: packages/form-core/src/FieldApi.ts:1145

Updates the field instance with new options.

Parameters

opts

FieldApiOptions<TParentData, TName, TData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TFormOnMount, TFormOnChange, TFormOnChangeAsync, TFormOnBlur, TFormOnBlurAsync, TFormOnSubmit, TFormOnSubmitAsync, TFormOnServer, TParentSubmitMeta>

Returns

void


validate()

ts
validate(cause, opts?): unknown[] | Promise<unknown[]>
validate(cause, opts?): unknown[] | Promise<unknown[]>

Defined in: packages/form-core/src/FieldApi.ts:1630

Validates the field value.

Parameters

cause

ValidationCause

opts?
skipFormValidation?

boolean

Returns

unknown[] | Promise<unknown[]>

Subscribe to Bytes

Your weekly dose of JavaScript news. Delivered every Monday to over 100,000 devs, for free.

Bytes

No spam. Unsubscribe at any time.

Subscribe to Bytes

Your weekly dose of JavaScript news. Delivered every Monday to over 100,000 devs, for free.

Bytes

No spam. Unsubscribe at any time.