# FormOptions

# Interface: FormOptions\<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnDynamic, TOnDynamicAsync, TOnServer, TSubmitMeta\>

Defined in: [packages/form-core/src/FormApi.ts:351](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L351)

An object representing the options for a form.

## Extends

- [`BaseFormOptions`](BaseFormOptions.md)\<`TFormData`, `TSubmitMeta`\>

## Type Parameters

### TFormData

`TFormData`

### TOnMount

`TOnMount` *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\>

### TOnChange

`TOnChange` *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\>

### TOnChangeAsync

`TOnChangeAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\>

### TOnBlur

`TOnBlur` *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\>

### TOnBlurAsync

`TOnBlurAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\>

### TOnSubmit

`TOnSubmit` *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\>

### TOnSubmitAsync

`TOnSubmitAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\>

### TOnDynamic

`TOnDynamic` *extends* `undefined` \| `FormValidateOrFn`\<`TFormData`\>

### TOnDynamicAsync

`TOnDynamicAsync` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\>

### TOnServer

`TOnServer` *extends* `undefined` \| `FormAsyncValidateOrFn`\<`TFormData`\>

### TSubmitMeta

`TSubmitMeta` = `never`

## Properties

### asyncAlways?

```ts
optional asyncAlways: boolean;
```

Defined in: [packages/form-core/src/FormApi.ts:390](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L390)

If true, always run async validation, even when sync validation has produced an error. Defaults to undefined.

***

### asyncDebounceMs?

```ts
optional asyncDebounceMs: number;
```

Defined in: [packages/form-core/src/FormApi.ts:394](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L394)

Optional time in milliseconds if you want to introduce a delay before firing off an async action.

***

### canSubmitWhenInvalid?

```ts
optional canSubmitWhenInvalid: boolean;
```

Defined in: [packages/form-core/src/FormApi.ts:398](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L398)

If true, allows the form to be submitted in an invalid state i.e. canSubmit will remain true regardless of validation errors. Defaults to undefined.

***

### defaultState?

```ts
optional defaultState: Partial<FormState<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnDynamic, TOnDynamicAsync, TOnServer>>;
```

Defined in: [packages/form-core/src/FormApi.ts:372](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L372)

The default state for the form.

***

### defaultValues?

```ts
optional defaultValues: TFormData;
```

Defined in: [packages/form-core/src/FormApi.ts:341](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L341)

Set initial values for your form.

#### Inherited from

[`BaseFormOptions`](BaseFormOptions.md).[`defaultValues`](BaseFormOptions.md#defaultvalues)

***

### formId?

```ts
optional formId: string;
```

Defined in: [packages/form-core/src/FormApi.ts:368](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L368)

The form name, used for devtools and identification

***

### listeners?

```ts
optional listeners: FormListeners<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnDynamic, TOnDynamicAsync, TOnServer, TSubmitMeta>;
```

Defined in: [packages/form-core/src/FormApi.ts:420](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L420)

form level listeners

***

### onSubmit()?

```ts
optional onSubmit: (props) => any;
```

Defined in: [packages/form-core/src/FormApi.ts:438](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L438)

A function to be called when the form is submitted, what should happen once the user submits a valid form returns `any` or a promise `Promise<any>`

#### Parameters

##### props

###### formApi

[`FormApi`](../classes/FormApi.md)\<`TFormData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TOnDynamic`, `TOnDynamicAsync`, `TOnServer`, `TSubmitMeta`\>

###### meta

`TSubmitMeta`

###### value

`TFormData`

#### Returns

`any`

***

### onSubmitInvalid()?

```ts
optional onSubmitInvalid: (props) => void;
```

Defined in: [packages/form-core/src/FormApi.ts:459](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L459)

Specify an action for scenarios where the user tries to submit an invalid form.

#### Parameters

##### props

###### formApi

[`FormApi`](../classes/FormApi.md)\<`TFormData`, `TOnMount`, `TOnChange`, `TOnChangeAsync`, `TOnBlur`, `TOnBlurAsync`, `TOnSubmit`, `TOnSubmitAsync`, `TOnDynamic`, `TOnDynamicAsync`, `TOnServer`, `TSubmitMeta`\>

###### meta

`TSubmitMeta`

###### value

`TFormData`

#### Returns

`void`

***

### onSubmitMeta?

```ts
optional onSubmitMeta: TSubmitMeta;
```

Defined in: [packages/form-core/src/FormApi.ts:345](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L345)

onSubmitMeta, the data passed from the handleSubmit handler, to the onSubmit function props

#### Inherited from

[`BaseFormOptions`](BaseFormOptions.md).[`onSubmitMeta`](BaseFormOptions.md#onsubmitmeta)

***

### transform()?

```ts
optional transform: (data) => unknown;
```

Defined in: [packages/form-core/src/FormApi.ts:483](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L483)

#### Parameters

##### data

`unknown`

#### Returns

`unknown`

***

### validationLogic?

```ts
optional validationLogic: ValidationLogicFn;
```

Defined in: [packages/form-core/src/FormApi.ts:415](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L415)

***

### validators?

```ts
optional validators: FormValidators<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnDynamic, TOnDynamicAsync>;
```

Defined in: [packages/form-core/src/FormApi.ts:402](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L402)

A list of validators to pass to the form
