---
title: "Logic & validation — formformform"
description: "Conditional logic, input validation, and multi-page forms, all built in. Show or hide fields, skip pages, require answers, and check email, number, and custom patterns — no scripting."
url: "https://www.formformform.com/features/logic"
type: static
generatedAt: "2026-08-23T18:56:58.727Z"
---
[Features](https://www.formformform.com/features)/Logic & validation, no scripting

Build

# Logic & validation, no scripting

Conditional logic, input validation, and multi-page forms are built in. Set the rules in plain language and the form adapts to each visitor — no scripts, no plugins, nothing to deploy.

[Start for free](https://app.formformform.com/register?utm_source=landing&utm_medium=feature-bottom&utm_campaign=features&utm_content=logic)[All features →](https://www.formformform.com/features)

formformform.com/forms/launch-survey/logic

formformform

Forms›Launch survey›Logic

SavedPublish

Pages

1·Welcome

↓

2·About you

↓

3·Billing

Rules · About you

When‘Are you a business?’ is Yes→

ThenShow Company sizeSkip to Billing

When‘Budget’ is under $1k→Show Self-serve plans

✓

EmailRequired

Must be a valid address

A logic rule shown the way you'd read it: when an answer matches, show, skip, or require — no code involved.

Branch on any answer

Logic in formformform is a set of rules you read like sentences: _when this answer is that, do this_. Show a follow-up field only when someone picks "other". Skip a whole page when it doesn't apply to them. Send two different audiences down two different paths from the same form.

Rules are evaluated as the visitor types, so the form quietly rearranges itself around their answers. Nobody waits on a field they'll never fill, and you don't end up cleaning irrelevant responses later.

Catch mistakes before they submit

Validation runs in the browser, the moment a field loses focus — not after a full round-trip to the server. Mark a field **required** and an empty one can't slip through. Set a field's type to email or number and the format is checked for you. For anything more specific, add a pattern: an order ID, a postcode, a phone shape.

-   Required fields block submission until they're filled.
-   Email and number types validate format automatically.
-   Custom patterns match the exact shape you describe.

Each rule carries its own message, so people see plain guidance like "enter a valid email" instead of a generic error.

Split long forms across pages

A long single scroll is the fastest way to lose someone. Break a form into pages and each step asks for a little, shows a progress indicator, and validates before it lets the visitor move on — so they fix one page at a time rather than meeting a wall of errors at the end.

Pages and logic work together: a jump-to-page rule can carry someone straight from page one to the page that fits their answer, skipping the rest. None of it needs code.

Also included

Show & hide fields

Reveal or remove fields based on earlier answers, live as they type.

Jump to a page

Route visitors straight to the page that matches their response.

Required toggles

Mark any field required; empty values can't be submitted.

Email, number & regex

Built-in format checks, plus custom patterns for anything else.

Multi-page progress

Split forms into steps with a clear progress indicator.

## Keep exploring

[Form editor

Build and arrange fields, then layer logic on top — all in one place.

Explore→](https://www.formformform.com/features/form-editor)[Responses & export

Review answers, filter, and export the clean data your rules produced.

Explore→](https://www.formformform.com/features/responses)[Webhooks & API

Send validated submissions onward to your own systems in real time.

Explore→](https://www.formformform.com/features/webhooks-api)

## Build a form that thinks for itself

Add logic and validation in minutes, then watch the form adapt to every visitor. Free to start.

[Start for free](https://app.formformform.com/register?utm_source=landing&utm_medium=feature-bottom&utm_campaign=features&utm_content=logic)
