SurveyJS: «Не удается прочитать свойство indexOf со значением NULL» с несколькими раскрывающимися списками - PullRequest
0 голосов
/ 18 марта 2019

У меня есть опрос, проведенный с 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 ограничены ...

...