ChargeForms
All posts
Guides

A Practical Guide to Conditional Logic

ChargeForms Team·2026-06-20·2 min read

Conditional logic is one of those features that sounds abstract until you see it solve an actual problem. Here are three patterns we see most often.

1. The simple show/hide

Scenario: A contact form has a "How did you hear about us?" dropdown. If someone selects "Other", show a text field to specify.

Setup: On the "Please specify" text field, add a rule group: show this field when "How did you hear about us?" is "Other".

This is the smallest possible use of conditional logic, and it's also the most common — most forms only need one or two rules like this.

2. Branching by service type

Scenario: A consultation request form offers three service types. Each one needs different follow-up questions — "Business Consulting" needs a company size field, "Personal Coaching" needs a goals field.

Setup: Group each service-specific field under its own condition: show the company-size field when Service Type is "Business Consulting"; show the goals field when Service Type is "Personal Coaching". Visitors only ever see the three or four questions relevant to what they picked, not all the questions for every service stacked on top of each other.

3. Multi-step, cross-step conditions

Scenario: A multi-step job application asks for "Do you require visa sponsorship?" on step 1. If yes, step 3 should include an additional document upload for visa status.

Setup: This works exactly the same as a single-step rule — the document upload field's condition just references a field from an earlier step. ChargeForms re-evaluates the rule as the visitor navigates between steps, and again server-side at final submission, so the visibility logic can't be bypassed by skipping around steps either.

The pattern behind all three

Every example above follows the same shape: pick the field that should change, decide what triggers the change, and let ChargeForms handle both the live front-end behavior and the server-side re-verification. You never need to write JavaScript for any of this.