Multiple choice field
Use multiple_choice when you want respondents to choose one option from a list of radio buttons.
Configuration
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
options | string[] | Yes | n/a | Choices shown as radio buttons. Do not include “Other”; use has_other. |
has_other | boolean | No | false | Adds an Other choice with a text input. |
other_label | string | No | The word for “Other” in the form’s language | Sets the Other choice label. Must be 1 to 500 characters. |
scoring | number[] | No | Every option scores 0 | Sets each option’s score, in the same order as options. |
capacity | (integer or null)[] | No | No limit | Sets how many responses each option can accept. Provide one entry per option; each entry is an integer from 0 to 999,999, or null for no limit. |
answer_explanation | string | No | None | Explanation shown with this question in a result_breakdown block. |
randomize | boolean | No | false | Shows each respondent the choices in a different order. |
This field also accepts shared field properties. defaultValue is ignored for this field. Choices on pages the respondent skips are dropped before the submission is stored.
Validation
If the field is required and the respondent has not chosen an option, the form blocks them from continuing. If they choose Other without entering text, the form also blocks them. An option at capacity cannot be selected. A field hidden through visible_if or hide_if is skipped during validation, even when it is required.
Submission value
The answer is a string containing the selected option. If the respondent chooses Other, the value is stored as "Other: <text>". In calculations, use {{workshop_slot.score}} to access this field’s score.
Example
{
"type": "multiple_choice",
"name": "workshop_slot",
"label": "Which workshop will you join?",
"options": ["Morning session", "Afternoon session", "Evening session"],
"has_other": true,
"other_label": "Another time",
"scoring": [3, 2, 1],
"capacity": [20, 20, null],
"answer_explanation": "Choose the session that fits your schedule.",
"randomize": true,
"required": true
}