SurveyJS troubleshooting

SurveyJS question not showing? Check the rule, value, and parent path.

A missing question is often a logic problem rather than a rendering problem. SurveyJS re-evaluates visibleIf when referenced values change, but the expression still has to reference the right question, compare the stored value, and survive every parent panel and page guard.

FormPath works from the raw definition. It can show an answer combination that makes the question visible, prove a supported rule impossible, or clearly list behavior it could not safely check.

Diagnostic checklist

Work from the stored answer outward.

  1. 01

    Confirm the expression reads an answer

    Question names belong in curly braces. A quoted field name is fixed text, so it never changes with the respondent's answer.

  2. 02

    Compare the stored value, not the label

    A choice can display “Residential” while storing “residential.” visibleIf evaluates the stored value.

  3. 03

    Trace the whole visibility chain

    A question also inherits visibility from its page, panel, and nested containers. Its own visibleIf can be true while an ancestor remains hidden.

  4. 04

    Separate definition logic from host behavior

    Remote choices, custom functions, dynamic rows, navigation, and application code can affect what the user sees. Those dependencies need the running application.

Example

A real missing-reference defect

The original expression compares the fixed strings “property-use” and “residental.” It never reads the respondent's property-use answer, and the literal is also misspelled. In the retained July 2026 validation snapshot, FormPath proved the affected mortgage question unreachable.

Controlling expression
"visibleIf": "({loan-purpose} = 'house-purchase') and ('property-use' == 'residental')"
Intended field-reference shape
"visibleIf": "({loan-purpose} = 'house-purchase') and ({property-use} = 'residential')"

Honest boundary

What this guide and analyzer do not establish.

  • A SurveyJS-checked answer example is one answer state, not automatically a click-by-click journey.
  • Custom functions, remote values, dynamic rows, and host-application behavior are not guessed.
  • A clean result applies only to the supported and completed analysis scope shown in the report.

No signup · no upload

Ask which supported answer states are actually possible.

FormPath runs locally and exports each finding, how it was checked, and any important limits as JSON or Markdown.

Check a SurveyJS form