Multiple choice field

Use multiple_choice when you want respondents to choose one option from a list of radio buttons.

Configuration

NameTypeRequiredDefaultDescription
optionsstring[]Yesn/aChoices shown as radio buttons. Do not include “Other”; use has_other.
has_otherbooleanNofalseAdds an Other choice with a text input.
other_labelstringNoThe word for “Other” in the form’s languageSets the Other choice label. Must be 1 to 500 characters.
scoringnumber[]NoEvery option scores 0Sets each option’s score, in the same order as options.
capacity(integer or null)[]NoNo limitSets 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_explanationstringNoNoneExplanation shown with this question in a result_breakdown block.
randomizebooleanNofalseShows 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 }