# Form

> This document is the Markdown version of [formisch.dev/preact/api/Form/](https://formisch.dev/preact/api/Form/). For the complete documentation index, see [llms.txt](https://formisch.dev/llms.txt).

Form component that manages form submission and applies internal state. It wraps a native form element and calls the provided handler with the validated form output and the submit event.

```tsx
<Form of={…} onSubmit={…}>children</Form>
```

## Generics

- `TSchema` `extends FormSchema`

## Properties

- `of` `FormStore<TSchema>`
- `children` `ComponentChildren`
- `onSubmit` `SubmitEventHandler<TSchema>`

### Explanation

The `Form` component wraps a native HTML `<form>` element and provides form submission handling. It automatically prevents the default form submission behavior and calls the `onSubmit` handler when the form is submitted and validation succeeds.

The component uses the `of` prop to reference the form store and renders the `children` elements within the form. It also sets `novalidate` on the form element to disable browser validation, as Formisch handles validation internally.

## Related

### Hooks

[`useForm`](/preact/api/useForm.md)

### Components

[`Field`](/preact/api/Field.md), [`FieldArray`](/preact/api/FieldArray.md)

### Methods

[`focus`](/methods/api/focus.md), [`getDeepErrors`](/methods/api/getDeepErrors.md), [`getErrors`](/methods/api/getErrors.md), [`handleSubmit`](/methods/api/handleSubmit.md), [`reset`](/methods/api/reset.md), [`setErrors`](/methods/api/setErrors.md), [`setInput`](/methods/api/setInput.md), [`submit`](/methods/api/submit.md), [`validate`](/methods/api/validate.md)
