Panel Schema Properties
A container that groups questions within a page, supporting conditional visibility and layout.
Element type: panel
Key properties: 20
Generation Hints
Section titled “Generation Hints”- Aliases: group, section, fieldset, container.
- Use when: grouping related questions inside a page.
- Recommended properties:
type,name,title,elements,visibleIf.
{ "type": "panel", "name": "address", "title": "Address", "elements": [] }Usage Notes
Section titled “Usage Notes”- Panels group related questions inside a page or another panel.
- For repeated groups, use Panel Dynamic instead.
- Questions inside
elementsuse the same schema as top-level page elements.
Key Properties
Section titled “Key Properties”- Type:
"panel" - Required: Yes when the panel appears inside an
elementsarray
Identifies this element as a panel container.
- Type:
string - Default:
—
A form element identifier.
- Type:
text - Default:
— - Localizable: Yes
A title for the form element. If title is undefined, the name property value is displayed instead.
description
Section titled “description”- Type:
text - Default:
— - Localizable: Yes
Explanatory text displayed under the title.
elements
Section titled “elements”- Type:
element[] - Default:
[] - Required: Usually yes
Questions and nested panels shown inside this panel. Each question should have a stable name.
visibleIf
Section titled “visibleIf”- Type:
condition - Default:
—
A Boolean expression. If it evaluates to false, this panel/page becomes hidden.
enableIf
Section titled “enableIf”- Type:
condition - Default:
—
A Boolean expression. If it evaluates to false, this panel/page becomes read-only.
requiredIf
Section titled “requiredIf”- Type:
condition - Default:
—
A Boolean expression. If it evaluates to true, this panel/page becomes required (at least one question in the panel/page should have an answer).
readOnly
Section titled “readOnly”- Type:
boolean - Default:
—
Makes the form element read-only.
isRequired
Section titled “isRequired”- Type:
switch - Default:
—
Makes the panel/page require an answer at least in one nested question. If a respondent leaves the panel/page without any answers, the survey displays a validation error.
showQuestionNumbers
Section titled “showQuestionNumbers”- Type:
string - Default:
"default" - Allowed values:
default,onpanel,recursive,off
Specifies whether to display form element numbers within this page/panel and how to calculate them.
questionTitleLocation
Section titled “questionTitleLocation”- Type:
string - Default:
"default" - Allowed values:
default,top,bottom,left,hidden
Sets a title location relative to the input field for questions that belong to this panel/page.
questionErrorLocation
Section titled “questionErrorLocation”- Type:
string - Default:
"default" - Allowed values:
default,top,bottom
Specifies the error message position for questions that belong to this page/panel.
questionOrder
Section titled “questionOrder”- Type:
string - Default:
"default" - Allowed values:
default,initial,random
Specifies the sort order of questions in the panel/page.
startWithNewLine
Section titled “startWithNewLine”- Type:
boolean - Default:
true
Disable this property if you want to render the current panel on the same line or row with the previous question or panel.
- Type:
string - Default:
—
Sets form element width in CSS values.
minWidth
Section titled “minWidth”- Type:
string - Default:
"auto"
Gets or sets minimum form element width in CSS values.
maxWidth
Section titled “maxWidth”- Type:
string - Default:
"100%"
Gets or sets maximum form element width in CSS values.
innerIndent
Section titled “innerIndent”- Type:
number - Default:
0 - Allowed values:
0,1,2,3
Increases or decreases an indent of panel content from the left edge. Accepts positive integer values and 0.
- Type:
string - Default:
"default" - Allowed values:
default,collapsed,expanded
Gets and sets the form element’s expand state.