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

Свойства и функции строки табличного вопроса

Получить доступ к строкам табличного вопроса можно через объект rows, например Q.rows[5]. Строка, как и вариант ответа, содержит код ответа, текст и флаги, но также предоставляет набор различных свойств и функций. Доступ к вариантам ответа внутри строки осуществляется через свойства answer и answers. Для удобства многие функции этих объектов доступны через строку. Например, вызов Q.rows[5].getChecked() равнозначен Q.rows[5].answers.getChecked().

code​

Код строки, заданный при создании строки в редакторе анкеты. Например:

if (Q.rows[5].getChecked()[0].code == 99) {
return error('В строке 5 нельзя выбирать ответ с кодом 99');
}

text​

Текст строки, заданный при создании в редакторе анкеты. Также позволяет изменить этот текст. Примеры:

variables['Строка 5'] = Q.rows[5].text;
Q.rows[5].text = Q2.getChecked()[0].openValueTxt;

textLocalizations​

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

variables['Ответ 5'] = Q.rows[5].textLocalizations[Language.ru];
Q.rows[5].textLocalizations[Language.ru] = Q2.getChecked()[0].openValueTxt;

plainText​

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

Q.rows[5].text = '<b>Жирный текст</b>';
Q.rows[5].text = Q.rows[5].plainText;

openValueNum​

Открытое числовое значение для строки. Используется когда у строки включено поле для ввода открытого числового значения. Например:

variables['num2'] = Q.rows[2].openValueNum;

openValueInt​

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

openValueTxt​

Открытое текстовое значение для строки. Используется когда у строки включено поле для ввода открытого текстового значения. Например:

variables['txt3'] = Q.rows[3].openValueTxt;

settings​

Опции строки табличного вопроса, изменяющие различные её свойства. Подробнее в описании свойства settings у варианта ответа. Например:

// Добавить строке 5 числовое поле
Q.rows[5].settings.openValueNum = true;
// Разрешить его не заполнять
Q.rows[5].settings.allowEmptyOpenValue = true;

// Если у строки 98 есть текстовое поле…
if (Q.rows[98].settings.openValueTxt) {
// … что-то сделать
}

visible​

Возвращает true, если строка отображается. Также может использоваться для принудительного скрытия или показа строк в табличном вопросе. Например:

Q.rows[1].visible = false;

width​

Если в вопросе включена опция Перевернуть таблицу, то это свойство позволяет задать необходимую ширину колонки. Значение можно указать в процентах (например 40%), либо в пикселях (например 300px). Также можно указать значение auto, тогда ширина колонки будет автоматически рассчитана браузером. Примеры:

Q.rows[1].width = '20%';
Q.rows[2].width = 'auto';
Q.rows[3].width = '150px';

exportCodeOverride​

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

outputColumnTemplate​

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

outputColumnTemplateOVN​

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

outputColumnTemplateOVT​

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

answer​

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

var text = Q.rows[6].answer.openValueTxt;
var num = Q.rows[7].answer.openValueNum;

answers​

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

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

У варианта ответа в строке таблицы доступны те же методы и свойства, что у варианта ответа в не табличном вопросе, за исключением скрытия и показа ответа.

show()​

Делает строку видимой. Равносильно присваиванию true свойству visible. Например:

Q.rows[5].show();

hide()​

Скрывает строку. Равносильно присваиванию false свойству visible. Например:

Q.rows[5].hide();

getAll()​

Возвращает все варианты ответа для строки в виде массива. Например:

Q.rows[4].getAll().forEach(function (a) {
a.text = 'Вариант ответа с кодом ' + a.code;
});

getCodes()​

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

getVisibleCodes()​

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

getVisible()​

Возвращает видимые варианты ответа для строки в виде массива.

getCheckedCodes()​

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

getChecked()​

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


// получить массив и обратиться к первому (по порядку расположения ответов в вопросе) выбранному ответу в строке 5
let allChecked = Q.rows[5].getChecked();
let aText = allChecked[0].text;
let aCode = allChecked[0].code;

// составить строку, в которой через запятую перечислены все выбранные ответы из строки 5
let s = '';
Q.rows[5].getChecked().forEach(function (a) {
s += s.length > 0 ? ', ' : '';
s += a.text;
});
variables['row5_checked'] = s;

getCheckedCode([true])​

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

Если в строке ничего не выбрано - возвращает 0 при вызове без аргумента. Если передать true – возвращает undefined.

isChecked(code)​

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

showAll()​

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

show([code, codes, answer, row, column])​

Делает видимыми варианты ответа, коды которых переданы в аргументах, для всех строк табличного вопроса с выбором. Может принимать 1 код, массив кодов или объект ответа, строки или колонки таблицы. Количество аргументов и их порядок значения не имеют, главное - должно быть передано не меньше одного аргумента. Например:

Q.rows[2].show(1, [3,5,6], Q.answers[8], Q3.rows[10], Q6.columns[12]);
Q.rows[2].show(Q1.getCheckedCode(), Q2.getCheckedCodes());

showOnly([code, codes, answer, row, column])​

Делает видимым только варианты ответа, коды которых переданы в аргументах, для всех строк табличного вопроса с выбором. Остальные ответы будут скрыты. Может принимать 1 код, массив кодов или объект ответа, строки или колонки таблицы. Количество аргументов и их порядок значения не имеют, главное - должно быть передано не меньше одного аргумента.

showFromTo(codeFrom, codeTo)​

Делает видимыми все варианты ответа, коды которых попадают в диапазон от codeFrom до codeTo, для всех строк табличного вопроса с выбором. Например:

Q.rows[2].showFromTo(2, 50);

showOnlyFromTo(codeFrom, codeTo)​

Делает видимыми только те варианты ответа, коды которых попадают в диапазон от codeFrom до codeTo, для всех строк табличного вопроса с выбором.

hideAll()​

Скрывает все варианты ответа для всех строк табличного вопроса с выбором. Варианты ответа, у которых установлен флаг Всегда отображается, остаются всегда видимыми.

hide([code, codes, answer, row, column])​

Скрывает варианты ответа, коды которых переданы в аргументах, для всех строк табличного вопроса с выбором. Может принимать 1 код, массив кодов или объект ответа, строки или колонки таблицы. Количество аргументов и их порядок значения не имеют, главное - должно быть передано не меньше одного аргумента.

hideFromTo(codeFrom, codeTo)​

Скрывает все варианты ответа, коды которых попадают в диапазон от codeFrom до codeTo, для всех строк табличного вопроса с выбором.

hasVisible​

Возвращает true, если в строке есть хотя бы один видимый вариант ответа.

image​

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

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

imageUrl​

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

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

imagePlacement​

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

Q.rows[5].imageUrl = 'https://www.surveystudio.ru/content/images/ss2_logo_74x74.png';
Q.rows[5].imagePlacement = 4;
// или
Q.rows[5].imagePlacement = ImagePlacementIds.Right;

leftTitle
rightTitle​

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

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

leftTitleLocalizations
rightTitleLocalizations​

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

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

getPosition()​

Возвращает номер позиции ответа (без учёта группы) в вопросе Группировка с ранжированием. Например:

Q.rows[5].getPosition();