У меня есть опрос, проведенный с surveyJS, со страницей результатов в конце. Я рассчитываю результат с помощью этого скрипта:
.add(function (result) {
var totalScore = result.getAllQuestions().reduce(function(total, q) {
console.log('totalScore :' + totalScore);
if(Array.isArray(q.choices)) {
//console.log('Array.isArray' + Array.isArray);
return q.choices.reduce(function(s, c) {
console.log('c.value' + c.value);
if(q.value.indexOf(c.value) !== -1) {
s += c.score;
console.log(c.value);
}
return s;
}, total);
}
return total;
}, 0);
console.debug(totalScore);
var resultsBlock = document.querySelector('#surveyResult');
resultsBlock.style.display = "block";
resultsBlock.innerHTML = "Score total : " + totalScore;
});
Этот скрипт работает до тех пор, пока я не добавлю выпадающий вопрос с условными терминами "sub-dropdowns":
{
questions: [
{
type: "dropdown",
name: "firstSelection",
title: "First selection",
//visibleIf: "{boolCodeAPE}='true'",
//isRequired: true,
choices: [
{
value: "1",
score: 0
},
{
value: "2",
score: 0
},
{
value: "3",
score: 0
},
]
},
// My 3 sub-selections
{
type: "dropdown",
name: "selection1",
title: "selection1",
visibleIf: "{codeAPESelection} = '1'",
//isRequired: true,
choices: [
{
value: "a",
score: 0
},
{
value: "b",
score: 0
},
]
},
{
type: "dropdown",
name: "selection2",
title: "selection2",
visibleIf: "{codeAPESelection} = '2'",
//isRequired: true,
choices: [
{
value: "a",
score: 0
},
{
value: "b",
score: 0
},
{
value: "c",
score: 0
},
]
},
{
type: "dropdown",
name: "selection3",
title: "selection3",
visibleIf: "{codeAPESelection} = '3'",
//isRequired: true,
choices: [
{
value: "a",
score: 0
},
{
value: "b",
score: 0
},
]
},
]
}
Когда я добавляю этот вопрос в свой код, у меня на консоли появляется эта ошибка: Uncaught TypeError: Невозможно прочитать свойство 'indexOf' из null .
Я пытаюсь решить эту проблему, но мои навыки работы с javascript ограничены ...