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

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

Получить доступ к строкам табличного вопроса можно через объект 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;

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;

flags

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

// Добавить строке 5 числовое поле и разрешить его не заполнять
Q.rows[5].flags |= AnswerFlags.OpenValueNum | AnswerFlags.AllowEmptyOpenValue;

// Если у строки 98 есть текстовое поле…
if (Q.rows[98].flags & AnswerFlags.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()

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

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.survey-studio.com/content/images/ss2_logo_74x74.png';
}

imagePlacement

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

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