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