CALIPRY

How to make a form field appear only after a particular answer

Last checked against Splash 1.0.0 / 2026-08-15

Every field block in the Form builder carries a pair of settings that hold the field back until another field on the same form has been answered a particular way. One form can ask a renovation customer about the age of their existing pool, and never put that question to anyone else.

Nothing has to be set up outside the theme editor. The whole mechanism is two text boxes on the field you want to hide.

The two settings

Open the page in the theme editor, select the Form builder section, click the field block you want to make conditional, and scroll to the Conditional visibility heading at the bottom of its settings. There are two boxes.

Show when this field

The Label of another field on the same form, typed exactly. This is the question being watched.

Has one of these answers

The answers that reveal the field, one per line. Any one of them is enough.

So a field that should appear only for renovations watches a dropdown labelled Project type and lists the single answer Renovation.

Note Both boxes are needed. Fill in one and leave the other blank and the condition is ignored: the field stays visible to everyone, with nothing on the page to say so. This is the commonest reason a condition appears to do nothing.

Conditions are re-checked the moment an answer changes, so a branch opens and closes as the visitor works. A field revealed by an answer fades in and drops slightly into place; fields already visible when the page loads appear instantly, and the motion is dropped for visitors whose system asks for reduced motion.

How answers are matched

The comparison is deliberately narrow. Get it wrong and the field never appears, with no error anywhere.

Capitals are ignored

renovation matches a choice written Renovation.

Spaces at the start and end are ignored

A stray space before or after the answer is harmless. Spaces in the middle are not: Spa or hot tub with a double space matches nothing.

Everything else is exact

Renovation does not match a choice written Renovations. Punctuation, hyphens and accents all have to agree.

One answer per line

A line break separates answers. Commas do not. Renovation, Spa or hot tub on one line is treated as one long answer that nothing will ever equal.

The reliable method is to open the field being watched, copy a line out of its Choices box, and paste it into Has one of these answers. Do not retype it.

Which fields can be watched

The condition reads whatever the watched field's current answer is, so the answer you type depends on the kind of field it is.

Field being watched What to type as the answer
Dropdown A line from its Choices box, verbatim.
Multiple choice A line from its Choices box, verbatim.
Checkboxes A line from its Choices box. The field shows if that box is among the ones ticked. Checked, Yes or True match while any box in the group is ticked, which is how you show something the moment the visitor ticks anything at all.
Checkbox (single) Checked. Yes and True also work, as does whatever word the box itself submits, which is Yes on an English storefront. Nothing else matches.
Text, Email, Phone, Number, Date, Paragraph text The exact string the visitor typed. This works, but a visitor can type anything, and the branch only updates when they leave the field rather than as they type. Use a Dropdown or Multiple choice for a branch selector.
Section break Nothing. A Section break cannot be watched. Its Heading is not a field label and no condition naming it will ever resolve.

Limit A condition can only see fields inside the same Form builder section. It cannot watch a field on another page, in another section, or in a second form.

Build a form that branches three ways

This is the shape most quote forms take: one question at the top decides which set of questions follows. Add the blocks in this order in the Form builder's block list.

  1. Add a Dropdown block. Set Label to Project type. Put one choice per line in Choices:

    New construction
    Renovation
    Spa or hot tub

    Turn on Select the first choice by default and Required.

  2. Add the fields everyone answers, whichever branch they are in: a Text field labelled Full name and an Email field labelled Email. Leave both conditional boxes empty on these.

  3. Add the first branch's fields. On each one, set Show when this field to Project type and Has one of these answers to New construction.

  4. Add the second branch's fields, with the same Show when this field and Renovation as the answer. Then the third, with Spa or hot tub.

  5. If a branch needs a title over it, add a Section break above its fields and give it the same condition as the fields it introduces.

Note A Section break does not contain the fields below it. Hiding the break hides the break and nothing else. Every field in a branch needs its own copy of the condition, including the break itself.

Turning on Select the first choice by default matters more than it looks. With it on, the dropdown opens on the first choice and that branch is already showing when the page loads, so the form is never a bare card. With it off, the dropdown opens on Select an option and no branch appears until the visitor chooses one, and once they have chosen there is no way back to the empty state.

Field types, widths, units and the rest of each block's settings are defined in the Form field reference. Building the form itself, and connecting it to the quote buttons, is covered in Build the quote request form.

A second level

A field can watch a field that is itself conditional. While the middle field is hidden, everything that depends on it stays hidden too, however deep the chain runs.

The contact page that ships with the theme does exactly this, and it is worth opening in the theme editor to look at:

  • What can we help with? is a preselected Dropdown offering General inquiry, Request a call back and After purchase. It has no condition of its own.
  • What is it about? is a Dropdown that shows when What can we help with? is After purchase.
  • Before you send it back is a Section break that shows when What is it about? is Return or refund.

Pick General inquiry and the second dropdown is hidden, so the Section break under it is hidden as well, even though its own condition says nothing about the first question.

Check the wiring

In the theme editor, a field whose watched label matches nothing on the page is drawn with a dashed red outline and a line underneath reading No field on this page is labeled followed by the label it looked for. That is the only feedback the theme gives, and it is the one to go looking for, because an unresolved condition makes the field permanently visible, which looks exactly like a field with no condition at all.

The dashed outline is drawn on the live storefront as well. The explanation is held back there, but the label the condition was looking for is not: it is printed in red under the field for shoppers to read. A broken condition is visible to everyone and shows them one of your own field names, so fix it as soon as it appears.

Four things produce it:

  • A typo in Show when this field, including a doubled space.
  • Naming a Section break, which cannot be watched.
  • Naming a field that sits in a different section or on a different page.
  • Renaming the watched field after the condition was written.

Note A field's Label is its identity twice over. Renaming it breaks every condition that names it, and it also changes the heading the answer arrives under in your notification email, so your own records split across two column names from that day forward.

Give every field on a form a distinct label. Two fields sharing one label do not collide in the email, where the second arrives as Label (2), but only the first of them can be watched: a condition naming that label always resolves to the earlier field.

Limit Two fields cannot usefully watch each other. Point field A at field B and field B at field A and neither one appears unless both conditions are satisfied at the same moment. Because neither field can be answered while it is hidden, the pair normally stays hidden for good, and no warning is drawn, because both labels resolve.

What actually gets submitted

A hidden field is switched off, not merely out of sight.

A branch the visitor never opened

Contributes nothing at all to the email. Not an empty line, not a heading with nothing after it. The email contains only the questions that were actually on screen.

A branch opened, then switched away from

Dropped as well. If someone picks Renovation, answers two questions, then changes their mind and picks New construction, those two answers are not sent.

A required field that is conditional

Enforced only while it is visible. A hidden required field never blocks the form, so you can mark every field in every branch as required without trapping anyone.

A Checkboxes field

Never required. That block type has no Required setting, so it always prints "(optional)" beside its label whether or not it is conditional.

Note Keep at least one Email field with both conditional boxes empty. The first unconditional Email field on the form supplies the reply-to address that Shopify validates. If every Email field on the form is conditional and the one carrying that role is hidden when the visitor submits, it is switched off with the rest of its branch, the submission arrives with no email address, and Shopify rejects it. The visitor sees a red error panel reading "Your message couldn't be sent" and loses the form they filled in.

When the visitor has no JavaScript

Conditional visibility runs in the browser. Where scripting is unavailable, the theme does not hide anything:

  • Every branch is shown at once, from the first paint.
  • No conditional field is enforced as required, so nobody is stopped by a question meant for a branch they are not in.
  • Whatever the visitor fills in, in any branch, is submitted.

This is the intended fallback rather than a failure. It means the form is always completable and the request always arrives, at the cost of being longer than it needed to be. It also means a condition is a way of shortening a form, not a way of keeping a question private.

Limits worth knowing before you plan a long form

  • A Form builder section holds 50 blocks in total. Contact method, Opening hours and Callout blocks beside the form count toward that number, and branches multiply fields quickly.
  • A Section break can be conditional but cannot be the field another field depends on.
  • A condition can name only one field. To require two answers at once, chain them: put the condition for the second question on the first, and the condition for the field on the second question.
  • Conditions test for a match, never for the absence of one. There is no "show unless".

If you are still deciding what the form should ask, Why Splash quotes some products covers what the quote flow does and does not pass along, including the fact that the request carries no record of which product the shopper was looking at.

Something wrong here If a step does not match what you see, say so and it gets fixed. Documentation goes stale, which is why the line under the title carries a date.