Loop Control Settings
Add a Loop control that contains multiple controls that loop multiple times to allow entering multiple items, each of which requires multiple pieces of information.
Use the Loop control to contain one or more Screen controls to duplicate the contained set of controls a specified number of times, thereby minimizing the design work to duplicate that set of controls in a Screen. Use the Loop control when the Request participant must enter multiple instances of the same set of information, each of which contain multiple components.
For example, use a Loop control when a university registrar's office must enter the following information for each new university student enrolling to the university:
Information | Screen Control |
First Name | |
Last Name | Line Input control |
Age | Line Input control |
Sex | |
Housing Dormitory | Select List control |
During the in-progress Request, the Loop control displays the set of controls contained in the Loop control a specified number of times so that the university registrar's office may enter the same information for each new student from one Screen page. The Submit Button control to submit the Screen must be placed outside of the Loop control. Otherwise, a Submit Button control displays in each set of controls placed into the Loop control. See a design example.
Do not place another Loop control inside the first Loop control.
The Loop control uses a unique JSON key available to any control placed within the Loop control to reference Request data. Controls that are placed into a Loop control for duplication are within a container and may only access another control's data that is in the same Loop control. Use the
_parent
JSON key in a control's settings placed within a Loop control to reference Request data outside of that Loop control.Consider the following examples:
- A Line Input control placed within a Loop control requires a default value to display from another Line Input control used during that Request of which its Variable Name setting is
Line_Input_Data
. From the Line Input control placed within the Loop control, enter the following into the Default Value setting:{{ _parent.Line_Input_Data }}
. - A Select List control placed within a Loop control requires its options to display from another Select List control's options used during that Request of which its Variable Name setting is
Select_List_Options
. While configuring the Select List control placed within the Loop control to use Request data as its data source, enter the following into the Options Variable setting:_parent.Select_List_Options
.
Your user account or group membership must have the following permissions to design a Screen unless your user account has the Make this user a Super Admin setting selected:
- Screens: Edit Screens
- Screens: View Screens
- 1.View the Screen page to which to add the control.
- 2.Locate the Loop iconin the panel to the left of the Screen Builder canvas.
- 3.Drag the Loop icon into the Screen Builder canvas. Existing controls on the Screens Builder canvas adjust positioning based on where you drag the control.
- 4.Place into the Screen Builder canvas where you want the control to display on the Screen. Ensure that the control's placement accounts for the set of controls you intend to this control to contain.
- 5.
- 6.Drag and place the Screen control(s) into the Loop control that you intend the Request participant to enter information each time the Loop control repeats. As a best practice, do not do the following:
- Do not place another Loop control inside the first Loop control.
- 7.Configure each control placed into the Loop control. If a control placed into the Loop control requires to use Request data, use the
parent
JSON key. See Use theparent
JSON Key to Reference Request Data from Controls in a Loop Control. - 8.

Loop control containing two controls, repeating twice
After adding a control to a Screen page, you may move it to another location on that page such that it is above or below other controls placed on that page. Consider when moving this control that it contains a set of controls that become duplicated during in-progress Requests. A control cannot be moved to another Screen page.
Follow these steps to move a control to another location on that Screen page:
- 1.Place your cursor anywhere on the control not displaying the Duplicate Controlor Delete Controlbuttons.
- 2.Hold your cursor, then drag the control above or below other controls on that Screen page. Screen Builder previews where the control would display on the page based on how you position the control above or below other controls. If the control cannot be placed in a location because your cursor is above an existing control or too far to the left or right of the page, theicon displays in the preview.
- 3.Place the control at the location on the page you want it. The other control(s) on the page automatically adjust position.
Copying a control also copies the current settings of that control. The copied control displays below other controls placed on that Screen page.
Follow these steps to copy a control:
- 1.Select the control to be copied.
- 2.Click the Duplicate Control button. The control copies with its current settings, and then displays below other controls placed on that page.
As a best practice, after copying a control, change the Variable Name setting value for the copied control to its own unique variable value. Otherwise, in-progress Requests that use this Screen read from and send data to both controls.
Consider the following when deleting a configured Loop control:
- Deleting a Loop control also deletes the controls placed into it.
- Deleting a control also deletes configuration for that control. If you add another control, it will have default settings.
- 1.Select the control to be deleted.
- 2.Click the Delete button. The control deletes. Other controls on that Screen page adjust their locations automatically.
The Loop control has the following panels that contain settings:
Click the control while in Design mode, and then click the Configuration panel that is on the right-side of the Screen Builder canvas.
Below are settings for the Loop control in the Configuration panel:
Make note of best practices when configuring a Loop control that contains a Select List control. If the Select List control references a JSON array from a data source, configure the Select List control to reference the JSON object containing the JSON array and not its values. Then duplicate the JSON array in the Loop control. See Duplicate the JSON Array in a Select List Control Used in a Loop Control.
This setting is not available in Display-type Screens since the content in these Screens is not editable.
Select whether to create a new array of JSON objects designed from Screen controls within the Loop control or to reference an existing JSON array of objects:
- New array of JSON objects designed from Screen controlsSelect the New Array of Objects option from the Data Source setting to place Screen controls into the Loop control while in Design mode.When this option is selected, the Default Loop Count setting displays to indicate how many times to repeat the control(s) that the Loop control contains. See a design example.
- Existing JSON array of objectsSelect the Existing Array option from the Data Source setting to reference a JSON array from the Request data that the Loop control contains.When this option is selected the Default Loop Count setting does not display since the JSON array specifies how many times to repeat the control(s) that the Loop control contains.
Edit the default Variable Name setting value for this control if necessary. The Variable Name setting value represents data in this control during Requests. Ensure that the Variable Name setting value is a unique name from other controls in this Screen and contains at least one letter. This is a required setting.
Use the Variable Name setting value in the following ways:
- Reference this control by its Variable Name setting's value. The Data Preview panel in Preview mode corresponds with the Loop control's Variable Name value. In the example below,
LoopControl
is the Variable Name setting's value. - Reference this control's value in a different Screen Builder control. To do so, use mustache syntax and reference this control's Variable Name value in the target control. Example:
{{ LoopControl }}
.
This setting is not available in Display-type Screens since the content in these Screens is not editable.
Enter the number of times to repeat the control(s) that the Loop control contains. 3 is the default value.

This setting is not available in Display-type Screens since the content in these Screens is not editable.
If this setting is selected, then the Add Loop icon
displays below the looped container of controls that allows the Request participant to add a new loop for the Task. See a design example.

Click the control while in Design mode, and then click the Advanced panel that is on the right-side of the Screen Builder canvas.
Below are settings for the Loop control in the Advanced panel:
Specify an expression that indicates the condition(s) under which this control displays. See Expression Syntax Components. If this setting does not have an expression, then this control displays by default.

Note the following regarding how to use visibility rules:
- To make this control hidden until another control contains a value, enter the Variable Name setting value of that control to this control's Visibility Rule setting.
Select on which device types this control displays:
- Desktop: The control displays only on desktop devices. Enable the Show for Desktop toggle key.
- Mobile: The control displays only on mobile devices. Enable the Show for Mobile toggle key.
- Both: The control displays on both desktop and mobile devices. Both toggle keys are enabled by default.
Enter the value to represent this control in custom CSS syntax when in Custom CSS mode. As a best practice, use the same CSS Selector Name value on different controls of the same type to apply the same custom CSS style to all those controls.

See the following best practices regarding custom CSS in Screens:
Last modified 1mo ago