Перейти к основному содержимому

Свойства и функции вопроса

Получить доступ к вопросу можно различными методами. Например используя глобальные переменные Q1, Q2 и т.д., или используя объект questions, или просто используя параметр Q, который передается в скрипты перед показом и после ответа на вопрос. Полученный объект содержит различные переменные и функции.

примечание

Помимо перечисленных здесь методов и свойств, через вопрос доступны методы и свойства списка ответов. Например, Q.show(5) равнозначно вызову Q.answers.show(5)

number​

Содержит номер вопроса. Только для чтения.

type​

Тип вопроса (тип ответа на вопрос). Только для чтения. Содержит число, которое соответствует одному из вопросов:

  1. Информация
  2. Текстовый
  3. Числовой
  4. Единственный выбор
  5. Множественный выбор
  6. Таблица: текст
  7. Таблица: числа
  8. Таблица: единственный выбор
  9. Таблица: множественный выбор
  10. Выпадающий список: единственный выбор
  11. Впадающий список: множественный выбор
  12. Приветствие
  13. Ранжирование
  14. Рейтинг
  15. Таблица: рейтинг
  16. Клик-тест: текстовый
  17. Шкала максимального различия
  18. Телефон
  19. Email
  20. Слайдер
  21. Дата и время
  22. Группировка с ранжированием
  23. Таблица: слайдер
  24. Семантический дифференциал
  25. Клик-тест: изображение
  26. Таблица: выпадающий список, единственный выбор
  27. Капча
  28. Кликер

Вместо чисел можно использовать объект QuestionTypeIds со следующими свойствами:

  • WelcomeScreen - приветствие,
  • Information - информация,
  • Captcha — капча,
  • Text - текстовый,
  • Phone - телефон,
  • Email - email,
  • DateTime - дата и время,
  • Numeric - числовой,
  • SingleChoice - единственный выбор,
  • MultipleChoice - множественный выбор,
  • Dropdown_SingleChoice - выпадающий список: единственный выбор,
  • Dropdown_MultipleChoice - выпадающий список: множественный выбор,
  • Ranking - ранжирование,
  • GrouppingAndRanking — группировка с ранжированием,
  • Rating - рейтинг,
  • Slider - слайдер,
  • ClickTest_Text - клик-тест: текстовый,
  • ClickTest_Image — клик-тест: изображение,
  • Table_Text - таблица: текст,
  • Table_Numeric - таблица: числа,
  • Table_SingleChoice - таблица: единственный выбор,
  • Table_MultipleChoice - таблица: множественный выбор,
  • Table_Dropdown_SingleChoice — таблица: выпадающий список, единственный выбор,
  • Table_Rating - таблица: рейтинг,
  • Table_Slider — таблица: слайдер,
  • MaxDiff - шкала максимального различия,
  • SemanticDifferential — семантический дифференциал,
  • Clicker — кликер.

Примеры использования:

if (Q.type == 4 || Q.type == QuestionTypeIds.MultipleChoice) {
// Что-то сделать
}

text​

Текст вопроса. Допускается использование html-разметки.

Q.text = 'На <u>прошлой неделе</u> ' + Q.text;

textLocalizations​

Текст вопроса на указанном языке. Язык задаётся с помощью объекта Language.

Q.textLocalizations[Language.ru] = 'На <u>прошлой неделе</u> ' + Q.textLocalizations[Language.ru];

plainText​

Текст вопроса, очищенный от html-разметки. Только для чтения.

Q.text = 'На <u>прошлой неделе</u> ' + Q.text;
Q.text = Q.plainText;

comment​

Комментарий для вопроса. Допускается использование html-разметки.

commentLocalizations​

Комментарий для вопроса на указанном языке. Язык задаётся с помощью объекта Language.

plainComment​

Комментарий вопроса, очищенный от html-разметки. Только для чтения.

condition​

Условие показа вопроса.

settings​

Опции вопроса, изменяющие различные его свойства. Принимают и возвращают значения true и false.

примечание

Опции, влияющие на структуру массива, следует включать/выключать в скрипте Подготовка. Если включить, например, флаг Исключить вопрос при выгрузке в скрипте перед показом, то в массиве вопрос всё равно будет.

  • randomizeAnswers
    Рандомизация вариантов ответа перед показом
  • swapRowsAndColumns
    Перевернуть таблицу / Всегда отображать группы снизу
  • exportInCategoricalMode
    Выгружать в категориальном режиме
  • skipExport
    Исключить вопрос при выгрузке
  • disableAudioRecording
    Отключить запись звука
  • keepExportOV
    Оставить выгрузку открытых значений при исключении выгрузки вопроса
  • exportInAlternativeFlagsMode
    Выгружать в альтернативном режиме (для множественного выбора)
  • allowFractionalNumbers
    Разрешить ввод дробных чисел
  • showAutoAnswerProgress
    Показать таймер автоответа
  • rotateAnswers
    Ротация вариантов ответа перед показом
  • verticalTextInColumnHeaders
    Вертикальный текст в заголовках колонок табличного вопроса
  • customValidation
    Проверка ответа скриптами
  • enableAudioRecording
    Включить запись звука
  • forceSilentAudioRecording
    Не отображать индикатор записи звука (скрытая запись)
  • enableGPS
    Включить запись GPS-координат
  • enableGeoCoder
    Включить определения адреса по GPS-координатам
  • useDatePicker
    Для открытого текстового значения использовать выбор даты
  • useTimePicker
    Для открытого текстового значения использовать выбор времени
  • enableFileAttachments
    Разрешить добавление вложений к ответу на вопрос
  • enableSignatureAttachment
    Включить возможность добавления подписи к ответу на вопрос (планшеты)
  • allowEmptySignature
    Не требовать обязательного добавления подписи (планшеты)
  • showRowsOneByOne
    Показывать строки таблицы по мере ответа
  • enableSearchField
    Добавить строку поиска
  • disableHidingOpenValue
    Отключить скрытие полей с открытыми значениями
  • showGroupsWithCollapsedView
    Показывать группы в свёрнутом виде
  • grouppingAllNotRequired
    Не требовать группировки всех элементов
  • highlightTrackBeforeSliderHandle
    Выделять шкалу перед ползунком
  • canSkip
    Необязательный вопрос
  • useBarcodeScanner1D
    Использовать сканер штрихкода
  • useBarcodeScanner2D
    Использовать сканер QR-кода
  • hideGoBackButton
    Скрыть кнопку "Назад"
  • hideGoFirstButton
    Скрыть кнопку "Начало"
  • hideInterruptButton
    Скрыть кнопку "Завершить"
  • autoSubmitSingleChoice
    Автопереход далее при выборе единственного ответа
  • disableClipboardPaste
    Запретить вставку текста из буфера обмена
  • displayMode
    Режим отображения. Задаётся с помощью свойств объекта QuestionDisplayMode:
    • Adaptive — адаптивно (по ширине экрана)
    • AlwaysCompact — всегда компактный вид
    • AlwaysFull — всегда полный вид
  • hideSelectionMarker
    Скрыть маркер выбора

Примеры использования:

// Включить рандомизацию
Q.settings.randomizeAnswers = true;
// Необязательный вопрос
Q.settings.canSkip = true;
// Компактный вид
Q.settings.displayMode = QuestionDisplayMode.AlwaysCompact;

minAnswerCount​

Минимальное количество ответов, которые надо выбрать (для вопросов с множественным выбором).

maxAnswerCount​

Максимальное количество ответов, которые можно выбрать (для вопросов с множественным выбором).

columnCount​

Количество колонок (используется при отображении вопросов с единственным или множественным выбором). Не используется в табличных вопросах.

textLineCount​

Количество строк для вопросов с типом ответа Текстовый.

openValueNum​

Открытое числовое значение для вопросов с типом ответа Числовой и Рейтинг. Поддерживает целые и дробные числа.

variables['num'] = Q.openValueNum;
Q.openValueNum = 2.5;

openValueInt​

Открытое числовое значение, приведенное к целому числу, для вопросов с типом ответа Числовой и Рейтинг.

openValueTxt​

Открытое текстовое значение для вопросов с типом ответа Текстовый.

variables['txt'] = Q.openValueTxt;
Q.openValueTxt = 'Сложно сказать';

isAnswered​

Возвращает true, если вопрос считается отвеченным (содержит ответ, который достаточен для перехода на следующий вопрос).

outputColumnTemplate​

Шаблон имени переменной для вопроса при выгрузке. Подробнее тут.

outputColumnTemplateOVN​

Шаблон имени переменной для открытых числовых значений при выгрузке. Подробнее тут.

outputColumnTemplateOVT​

Шаблон имени переменной для открытых текстовых значений при выгрузке. Подробнее тут.

answer​

Быстрый доступ к полям ответа для вопросов с числовым или текстовым типом ответа. Например:

var text = Q34.answer.openValueTxt;
var num = Q35.answer.openValueNum;

answers​

Доступ к вариантам ответа для вопросов с единственным или множественным выбором. Например:

if (Q37.answers[5].checked) {
// …
}
// также допускается более короткая форма обращения
if (Q37[5].checked) {
// …
}

rows​

Доступ к строкам для табличных вопросов. Например:

if (Q38.rows[5].getCheckedCodes() > 1) {
// …
}

columns​

Доступ к колонкам (вариантам ответа) для табличных вопросов. Например:

Q38.columns[2].text = 'Лента';

categoricalIndexes​

Список псевдонимов, применяемых вместо порядкового номера ответа, используемых при формировании имени переменной при выгрузке вопросов с множественным выбором в категориальном режиме. Подробнее тут.

reset()​

Сброс всех ответов в изначальное состояние (сбрасывается checked и открытые значения openValueNum/openValueTxt, а также visible становится true у всех вариантов ответов, а также у строк и колонок табличных вопросов).

image​

Содержит изображение вопроса, а также позволяет добавить в вопрос изображение из объекта images. Примеры:

Q.image = images['Логотип'];
Q.image = Q34.image;

imageUrl​

Содержит URL изображения, а также позволяет добавить в вопрос изображение с внешнего сервера по прямой ссылке. Приоритет этого свойства выше свойства image, то есть если они заданы оба, то выполнится только imageUrl. Пример:

if (!Q.imageUrl.length) {
Q.imageUrl = 'https://www.surveystudio.ru/content/images/ss2_logo_74x74.png';
}

imagePlacement​

Содержит код расположения изображения относительно текста, а также позволяет задать расположение картинки. Принимает свойства объекта ImagePlacementIds:

  • Default - значение по умолчанию. Расположение задаётся настройками сервера.
  • Before - над текстом.
  • After - под текстом.
  • Left - слева от текста.
  • Right - справа от текста.
Q.imagePlacement = ImagePlacementIds.Right;

allowedAttachmentsType​

Тип вложения, которое можно прикрепить к вопросу (если включён соответствующий флаг). Принимает свойства объекта AttachmentTypeIds:

  • Image - изображение,
  • Document - документ,
  • Any - любой поддерживаемый.

Пример:

Q.allowedAttachmentsType = AttachmentTypeIds.Image;

minAttachmentsCount
maxAttachmentsCount​

Минимальное и максимальное количество файлов, которые нужно прикрепить к вопросу:

  • min = undefined, max = undefined - требуется 1 файл
  • min = x, max = undefined - требуется x
  • min = undefined, max = y - требуется от 0 до y
  • min = x, max = y - требуется от x до y

attachmentsCount​

Содержит количество прикреплённых к вопросу файлов. Только для чтения.

latitude
longitude​

Широта и долгота, определённые по GPS, места, где показан вопрос. Только для чтения.

address​

Адрес, определённый по GPS-координатам, места, где показан вопрос. Только для чтения.

autoAnswerSec​

Время в секундах, через которое нужно автоматически нажать кнопку Далее — ограничить время отображения вопроса на экране. При этом не в информационном вопросе должен быть включён флаг Проверка ответа скриптами либо указан код ответа (для вопросов с выбором).

autoAnswerCode​

Код ответа, который нужно выбрать автоматически в вопросе с выбором, если включён автоответ (см. выше).

answerNumberFrom​

Минимальное значение, которое требуется ввести в числовом вопросе.

answerNumberTo​

Максимальное значение, которое требуется ввести в числовом вопросе, а в вопросе Рейтинг — максимальная оценка.

icon​

Иконка вопроса Рейтинг. Принимает свойства объекта IconType:

  • Star — звезда,
  • Smile — смайл,
  • Heart — сердце,
  • ThumbsUp — палец вверх (отлично).

Пример:

Q1.icon = IconType.Smile;

leftTitle
rightTitle​

Левая и правая подпись шкалы в вопросах с типом Рейтинг, Слайдер и их табличных вариантов Таблица: Рейтинг, Таблица: Слайдер

Q.leftTitle = 'Не нравится';
Q.rightTitle = 'Очень нравится';

leftTitleLocalizations
rightTitleLocalizations​

Левая и правая подпись шкалы на указанном языке в вопросах с типом Рейтинг, Слайдер и их табличных вариантов Таблица: Рейтинг, Таблица: Слайдер. Язык задаётся с помощью объекта Language.

Q.leftTitleLocalizations[Language.ru] = 'Не нравится';
Q.rightTitleLocalizations[Language.ru] = 'Очень нравится';

sourceAnswerCode​

Для вопросов внутри цикла - код варианта ответа по которому создан (задаётся) этот вопрос цикла.

if (Q.sourceAnswerCode == 1) Q.hideFromTo(1, 5); // если вопрос задаётся по ответу с кодом 1 - скрыть ответы с 1 по 5

sourceQuestionNumber​

Для вопросов внутри цикла - исходный номер вопроса из которого создан этот вопрос цикла.

if (Q.sourceQuestionNumber == 10 || Q.sourceQuestionNumber == 11) { // для вопросов 10 & 11 расположенный в цикле
let condition = Q9.isChecked(1); // дополнительное условие - в Q9 должен быть отмечен 1
return condition ? ok : skip; // условие выполняется ? задать : иначе пропустить
}

currentIterationQuestions​

Для вопросов внутри цикла - ссылки на другие вопросы находящиеся в этой же итерации цикла. Ключом будет номер исходного вопроса.

Пример: В Q1 ответы с кодами 1, 2, 3.
По ответам из Q1 повторяются вопросы с Q2 по Q4 (цикл): questions.repeat(1, 2, 4);
В вопросе Q3 можно получить ссылки на соседние вопросы Q2 и Q4 которые задаются по такому же коду ответа (в этой же итерации):

let q2 = Q.currentIterationQuestions[2]; // вопрос Q2 в этой итерации
if (q2.isChecked(1)) return skip; // если в вопросе Q2 был выбран ответ 1 - пропустить вопрос

answersSumControlMode​

Режим контроля суммы вопроса Таблица: числа. Задаётся с помощью свойств объекта AnswersSumControlMode:

  • Exactly — строго равно
  • AtMost — не более
  • AtLeast — не менее

Пример:

Q.answersSumControlMode = AnswersSumControlMode.AtMost;

answersSumControlTarget​

Значение суммы при контроле в вопросе Таблица: числа. Пример:

Q.answersSumControlTarget = Q1.openValueNum;

answersSumControlUnit​

Единицы измерения при контроле в вопросе Таблица: числа. Задаётся с помощью свойств объекта AnswersSumControlUnit:

  • None — не задано
  • Percent — проценты
  • Pieces — штуки
  • Milliliter — миллилитры
  • Liter — литры
  • Gram — граммы
  • Kilogram — киллограммы

Пример:

Q.answersSumControlMode = AnswersSumControlUnit.Percent;

getClickedRegionCodes()​

примечание

Для вопроса Клик-тест: Изображение

Возвращает массив с кодами выбранных зон в вопросе.

Q.getClickedRegionCodes();
Q1.getClickedRegionCodes();

hideRegionsWithCodes([code, codes])​

примечание

Для вопроса Клик-тест: Изображение

Скрывает зону с указанным кодом (кодами). Принимает в качестве аргумента код или массив с кодами, которые необходимо скрыть.

Q.hideRegionsWithCodes(1);
Q1.hideRegionsWithCodes([2, 3]);

showRegionsWithCodes([code, codes])​

примечание

Для вопроса Клик-тест: Изображение

Показывает зону с указанным кодом (кодами). Принимает в качестве аргумента код или массив с кодами, которые необходимо показать.

Q.showRegionsWithCodes(1);
Q1.showRegionsWithCodes([2, 3]);

hasClickByRegion(code)​

примечание

Для вопроса Клик-тест: Изображение

Возвращает true, если был клик по зоне с указанны с кодом code.

if (Q.hasClickByRegion(1)) { // если был клик по зоне с кодом 1
// ...
}