Radio Button Group
A radio button group allows respondents to select an answer from a set of options. This demo shows how to create and configure a radio button group form field in SurveyJS Form Library. Switch between available JavaScript frameworks to view a demo version for Angular, React, Knockout, jQuery, or Vue.
Create a Radio Button Group Question
To create a radio group form field, define an object with the type
property set to "radiogroup"
and add it to the elements
array. Use the choices
array to specify choice values. Each object in this array should have the following structure:
{
"value": any, // A unique value to be saved in the survey results.
"text": String // A display text. When `text` is undefined, `value` is used as display text.
}
If you need to specify only the value
property, you can set the choices
property to an array of primitive values as shown in this demo. These values are both saved in survey results and used as display text.
You can also load choice values from a RESTful service. In this case, use the choicesByUrl
property instead of the choices
array. Refer to the ChoicesRestful object for information on how to configure this property. The demo on this page defines local choices
.
Display Special Choices
Special choices are the "None" and "Other" options. "None" is used when none of the proposed options suit a respondent; "Other" allows respondents to enter their own option into a comment area.
To display the None and Other options, enable the showNoneItem
and showOtherItem
properties. You can also set the noneText
and otherText
properties to change the captions of the special choices. In this demo, you can show and hide the "Other" option and change its caption at runtime.
When respondents select "Other", the value they enter into the comment area is saved in a separate property. The property name is composed of the question name
and commentSuffix
. For example, if the question name is "car"
, the survey result will be as follows:
{
"car": "other",
"car-Comment": "Custom value"
}
If you want to use the question name as a key to store the comment value, disable the storeOthersAsComment
property in SurveyModel
. In this case, you will get the following survey result:
{
"car": "Custom value"
}
Arrange and Sort Radio Buttons
You can arrange radio buttons in multiple columns. Assign the desired number of columns to the colCount
property. In this demo, you can select between 0, 1, 2, and 3 columns. When colCount
is 0, radio buttons are arranged in a single line and wrapped to the next line if they do not fit.
Choices are sorted according to the choices
array. If you want to sort them in ascending or descending alphabetical order, assign "asc"
or "desc"
to the choicesOrder
property. Alternatively, you can set this property to "random"
. In this case, choices are sorted in random order each time your survey is displayed. You can change the sort order at runtime in this demo.
Special choices ("None" and "Other") can be displayed on individual rows. Enable the separateSpecialChoices
property for this layout.
Clear the Selected Value
Once respondents select a radio button, they can clear it only by selecting another radio button. If you want to display a Clear button that allows respondents to clear the selected value, enable the showClearButton
property.