Field type: select_one
In the form designer, click + Add visible field, then choose select_one as the field type. You will be able to choose the choice list and edit choices as part of adding or editing the field.
select_one listname: prompts the user to select one choice from a list of choices. When working with a spreadsheet form definition, "listname" must correspond to a value that appears in the choices worksheet's list_name column (e.g., "yesno").
By default, choices will display as a series of radio buttons, each representing a single static choice from the list of choices you have specified in your form definition. However, there are a wide range of appearance options available to vary the appearance, functionality, and even choice list. See the sub-sections further below for those options.
In the spreadsheet form definition:
type | name | label | appearance |
select_one listname | fieldname | question text |
Basic appearance options
Specify "quick" in the appearance column if you want to automatically advance to the next question as soon as an option is selected (without waiting for the user to swipe forward). Alternatively, specify the "minimal" appearance to show a single drop-down selector rather than the radio buttons, or the "compact" appearance to show a compact table of options. If you specify "compact", the number of columns will depend on the width of the display; to force a particular number of columns, specify the number of columns after a hyphen (as in "compact-3" for 3 columns). You can also combine the "quick" and "compact" appearances by specifying "quickcompact" or "quickcompact-#".
In the spreadsheet form definition:
type | name | label | appearance |
select_one listname | fieldname | question text | quick |
select_one listname | fieldname | question text | minimal |
select_one listname | fieldname | question text | compact |
select_one listname | fieldname | question text | compact-# |
select_one listname | fieldname | question text | quickcompact |
select_one listname | fieldname | question text | quickcompact-# |
Likert-style scales
If you prefer to arrange your options horizontally, along a Likert-style scale, specify "likert" in the appearance column. If there isn't enough space to comfortably display all of the option labels, you can also specify "likert-min" to only show labels on either end, or specify "likert-mid" to only show labels at the left, right, and center (for an odd number of choices only). A note on display compatibility: when there are 10 or fewer options, each option will appear as a clickable radio button in web forms and on mobile devices running iOS or Android 7.0 and above; on older Android devices and with more than 10 options, the individual radio buttons will not appear along the clickable scale.
In the spreadsheet form definition:
type | name | label | appearance |
select_one listname | fieldname | question text | likert |
select_one listname | fieldname | question text | likert-min |
select_one listname | fieldname | question text | likert-mid |
Randomizing choice order
If you would like SurveyCTO to randomize the order of choices each time the form is filled out, specify "randomized" in the appearance column (can be combined with another appearance by adding a space between it and the other appearance).
To exclude the top x choices and bottom y choices from the randomization, specify something like "randomized(x, y)". The most common need is to exclude just one choice at the bottom of the list ("randomized(0, 1)"), in order to keep an "Other (specify)" kind of option fixed at the bottom of the list (while randomizing the order for all of the other choices).
In order to look for choice-order effects or audit the randomization, you can have SurveyCTO record the exact choices – and order – shown to each user, as part of the form's meta-data. To enable this recording for your form, add a text audit field with "choices" in its appearance column.
The algorithm used to randomize is the Fisher–Yates inside-out shuffle. To specify a specific randomization seed for testing or reproduction, use an appearance like "randomized(329)" to use a fixed seed of 329 or "randomized(${hhid})" to use the "hhid" field as the seed. If you are also specifying choices to exclude from the randomization, use something like "randomized(329, 0, 1)" to use a seed of 329, exclude 0 choices at the top of the list, and exclude one choice at the bottom of the list.
In the spreadsheet form definition:
type | name | label | appearance |
select_one listname | fieldname | question text | randomized |
select_one listname | fieldname | question text | randomized(#, #) |
select_one listname | fieldname | question text | randomized(#, #, #) |
Dynamic filtering and choice lists
If you would like to dynamically filter the list of choices shown to users, see the Dynamically filtering lists of multiple-choice options help topic.
If you would like to dynamically load the list of choices from a dataset or .csv file, see the Loading multiple-choice options from pre-loaded data help topic.