> For the complete documentation index, see [llms.txt](https://www.strickland.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://www.strickland.io/form-validation.md).

# Form Validation

Let's face it: we're trying to validate forms in the user interface. Yes, Strickland is decoupled from the UI and it *can* be used in other scenarios (like APIs), but form validation is the primary use case.

With the ability to validate an entire object with the `objectProps` validator, Strickland gets pretty close to providing form validation; it just falls short in one key way. The `objectProps` validator does not support validating field-by-field. You can dynamically build your `objectProps` validator to target specific fields and merge validation results after each validation, but there's a lot of orchestration code involved.

To simplify this scenario, Strickland provides a `form` validator that behaves similarly to `objectProps`, but it has additional features for field-by-field validation where a form's validation results are built up incrementally.
