Тип вопроса select_one предлагает респонденту выбрать ровно один вариант из заранее определённого списка. По умолчанию варианты отображаются в виде переключателей, но доступен широкий спектр вариантов внешнего вида для изменения макета и поведения.

Базовая спецификация XLSForm

Лист survey:

typenamelabel
select_one yesnoconsentДал ли респондент согласие?

Лист choices:

list_namenamelabel
yesnoyesДа
yesnonoНет

listname в select_one listname должен совпадать со столбцом list_name в листе choices.

Дополнительную информацию см. в спецификации XLSForm.

Применение

Вопросы типа select_one используются для:

  1. Вопросов Да/Нет
  2. Одиночного множественного выбора (например, уровень образования, пол, семейное положение)
  3. Категориальных рейтингов (например, плохо / удовлетворительно / хорошо / отлично)
  4. Каскадных (связанных) выборов, где варианты фильтруются на основе предыдущего ответа
  5. Выбора страны, региона, района или другой административной единицы

Варианты внешнего вида

Укажите значение в столбце appearance, чтобы изменить отображение вариантов:

Внешний видОписание
(нет)Переключатели по умолчанию, по одному в строке
minimalВыпадающий список вместо переключателей
quickАвтоматически переходит к следующему вопросу сразу после выбора (только мобильные)
compactКомпактная сетка вариантов — количество столбцов адаптируется к ширине экрана
compact-NКомпактная сетка, принудительно N столбцов (например, compact-3)
quickcompactСочетает quick и compact
quickcompact-NСочетает quick и compact с N принудительными столбцами
horizontalВарианты расположены горизонтально в ряд (веб)
horizontal-compactГоризонтально, компактный отступ (веб)
likertРяд шкалы Лайкерта — метки сверху, переключатели снизу
labelПоказывает только метки вариантов без элементов ввода (используйте совместно с list-nolabel)
list-nolabelПоказывает только элементы ввода без меток (используйте совместно с label)
columns(N)Отображение в N столбцах (расширение rtSurvey, например, columns(3))
distressВиджет шкалы психологического дистресса Кесслера (K10)
search-api(...)Динамический поиск — загружает варианты из API во время выполнения

Пример: Шкала Лайкерта

typenamelabelappearance
select_one satisfactionservice_ratingНасколько вы удовлетворены обслуживанием?likert

Пример: Компактные 3 столбца

typenamelabelappearance
select_one regionsregionВыберите регионcompact-3

Каскадные выборы

Каскадный (связанный) выбор фильтрует варианты на основе значения, выбранного в предыдущем вопросе. Используйте столбец choice_filter с именем столбца из листа choices.

survey:

typenamelabelchoice_filter
select_one provinceprovinceВыберите провинцию
select_one districtdistrictВыберите районprovince_name = ${province}

choices:

list_namenamelabelprovince_name
provincenairobiНайроби
provincemombasaМомбаса
districtwestlandsВестлэндсnairobi
districtkasaraniКасараниnairobi
districtnyaliНьялиmombasa
districtlikoniЛикониmombasa

При выборе респондентом nairobi в списке районов появятся только Вестлэндс и Касарани.

Использование выбранного значения в выражениях

Ссылайтесь на выбранное значение (не метку) через ${fieldname}:

  relevant: ${consent} = 'yes'
  

Для получения метки варианта вместо значения используйте choice-label():

  calculate: choice-label(${education_level}, ${education_level})
  

Вариант «Другое» со свободным текстом

Распространённый шаблон — включить вариант «другое», раскрывающий текстовое поле:

typenamelabelrelevant
select_one occupationjobКакова ваша профессия?
textjob_otherПожалуйста, уточните${job} = 'other'

choices:

list_namenamelabel
occupationfarmerФермер
occupationtraderТорговец
occupationstudentСтудент
occupationotherДругое (пожалуйста, уточните)

Лучшие практики

  1. Делайте списки короткими и взаимоисключающими — если респонденты могут хотеть выбрать несколько, используйте select_multiple.
  2. Размещайте наиболее распространённый ответ первым или упорядочивайте по алфавиту для длинных списков.
  3. Всегда включайте вариант «Не знаю» или «Предпочитаю не отвечать», когда это уместно.
  4. Используйте minimal (выпадающий список) для списков с более чем 7–8 вариантами на мобильных, чтобы экономить место на экране.
  5. Для каскадных выборов добавляйте все столбцы фильтра в лист choices перед построением формы.

Ограничения

  • Респондент может выбрать только один вариант — для вопросов с несколькими ответами используйте select_multiple.
  • Внешний вид likert лучше всего работает с 5–7 вариантами, умещающимися в одну строку.
  • Автопереход quick работает только на мобильных; на веб-формах эффекта нет.
Была ли эта страница полезной?