a!checkboxField( label, instructions, required, disabled, choiceLabels, choiceValues, value, validations, saveInto, validationGroup, requiredMessage, align, labelPosition, helpTooltip, choiceLayout, accessibilityText, showWhen, choiceStyle, spacing, data, sort )
Displays a limited set of choices from which the user may select none, one, or many items and saves the values of the selected choices. To save the index of the choice instead of a value, use checkboxes by index.
If the choice is exclusive, then consider using radio buttons or a dropdown.
If there are many choices, the component grows as large as necessary to display all the options. If a more compact presentation is desirable, consider using a multiple dropdown.
Name | Keyword | Types | Description |
---|---|---|---|
Label |
|
Text |
Text to display as the field label. |
Instructions |
|
Text |
Supplemental text about this field. |
Required |
|
Boolean |
Determines if a value is required to submit the form. Default: false. |
Disabled |
|
Boolean |
Determines if the field should display as potentially editable but grayed out. Default: false. |
Choice Labels |
|
List of Variant |
Array of options for the user to select. When the data source is a record type, this is a record field or related record field. |
Choice Values |
|
List of Variant |
Array of values associated with the corresponding choices. When the data source is a record type, this is a record field (usually the primary key field). |
Display Value |
|
List of Variant |
Values of choices to display as selected. |
Validations |
|
List of Text String |
Validation errors to display below the field when the value is not null. |
Save Input To |
|
List of Save |
One or more variables that are updated with the choice values when the user changes the selections. Use |
Validation Group |
|
Text |
When present, the requiredness of the field is only evaluated when a button in the same validation group is pressed. The value for this parameter cannot contain spaces. For example, |
Required Message |
|
Text |
Custom message to display when the field's value is required and not provided. |
Alignment |
|
Text |
Determines alignment of choice labels. Appian recommends this setting only be used inside the Grid Layout component. Valid values: |
Label Position |
|
Text |
Determines where the label appears. Valid values:
|
Help Tooltip |
|
Text |
Displays a help icon with the specified text as a tooltip. The tooltip displays a maximum of 500 characters. The help icon does not show when the label position is |
Choice Layout |
|
Text |
Determines the layout. Valid values: |
Accessibility Text |
|
Text |
Additional text to be announced by screen readers. Used only for accessibility; produces no visible change. |
Visibility |
|
Boolean |
Determines whether the component is displayed on the interface. When set to false, the component is hidden and is not evaluated. Default: true. |
Choice Style |
|
Text |
Determines how the choices should be displayed on the interface. Valid values: |
Spacing |
|
Text |
Determines the space between the options. Valid values: |
Data |
|
Any |
The record type used as the source of the component's choices. This can be specified with a record type reference or |
Sort |
|
List of SortInfo |
Array of Sort Info configurations created with |
"COMPACT"
option for choiceLayout should only be used for checkboxes with short choice labels, such as "Yes", "No", or "Maybe". When using the "COMPACT"
option, labels with text longer than two lines will be truncated."STACKED"
option for choiceLayout.When you select a record type in design mode, the Choice Labels and Choice Values are automatically populated with record field references. By default, the labels will be the first text field from the record type, and the values will be the primary key field.
If you select the Other option, you need to configure these parameters manually. As you configure them, keep the following points in mind:
These rules also apply when using data from a record type, except that choice order is determined by any sorting applied in the Sort section. If no sorting rules are configured, the choices are displayed in ascending order of the Choice Values field.
Interface components that use a record type as the data source are known as records-powered components.
Records-powered components can display a maximum of 5,000 rows. As a best practice, you should not display all 5,000 rows in a component since it may impact performance.
Use the interactive editor below to test out your code:
Use the interactive editor below to test out your code:
Use the interactive editor below to test out your code:
In this example, imagine you are building a form that lets users create an order. The Order record type has a one-to-many relationship with an Order Line record type. The product for each order line is represented by the itemId
field.
We'll use the checkbox component so users can add multiple items to their order. The component's choices are retrieved from a Product record type. choiceLabels
uses the name
field and the corresponding choiceValues
are set using the record type's primary key field, id
.
1
2
3
4
5
6
7
8
a!checkboxField(
data: recordType!AT Product,
choiceLabels: recordType!AT Product.fields.name,
choiceValues: recordType!AT Product.fields.id,
label: "Products",
value: local!products,
saveInto: local!products,
)
As the user selects products, the corresponding values are saved to the local!products
variable. When they are finished making selections, we can add their selections to the rule input that is passed to a process model. The user will click a button to submit the order, and we can use that interaction to finish constructing the rule input. In the button component's saveInto parameter, we'll use a!forEach() to iterate over the local!products
list and save each value as the itemId
of an Order Line.
1
2
3
4
5
6
7
8
9
10
11
12
13
a!buttonWidget(
label: "Submit order",
value: local!items,
saveInto: a!forEach(
local!products,
a!save(
ri!order[recordType!RE Order.relationships.orderLine][fv!index][recordType!RE Order Line.fields.itemId],
fv!item
)
),
style: "OUTLINE",
submit: true
)
Feature | Compatibility | Note |
---|---|---|
Portals | Compatible | |
Offline Mobile | Compatible | |
Sync-Time Custom Record Fields | Incompatible | |
Real-Time Custom Record Fields | Incompatible | Custom record fields that evaluate in real time must be configured using one or more Custom Field functions. |
Process Reports | Incompatible | Cannot be used to configure a process report. |
Process Events | Incompatible | Cannot be used to configure a process event node, such as a start event or timer event. |
There are older versions of this interface component. You can identify older versions by looking at the name to see if there is a version suffix. If you are using an old version, be sure to refer to the corresponding documentation from the list below.
Old Versions | Reason for Update |
---|---|
a!checkboxField_23r3 | Added the ability to use record field values as checkbox choices. |
To learn more about how Appian handles this kind of versioning, see the Function and Component Versions page.
The following patterns include usage of the Checkbox Component.
Configure a Boolean Checkbox (Choice Components): Configure a checkbox that saves a boolean (true/false) value, and validate that the user selects the checkbox before submitting a form.
Dual Picklist Pattern (Choice Components, Cards, Checkboxes, Buttons): Use this pattern to view side-by-side lists and move items from one list to the other. The dual picklist is great for moving items from one state to another, like from active to inactive.
Inline Survey (Radio Buttons, Checkboxes, Buttons): Use this pattern to create a clean and easy to navigate survey.
Make a Component Required Based on a User Selection (Validation): Make a paragraph component conditionally required based on the user selection.
Checkbox Component