调查每个选项的数字分数和基于分数的自定义输出

问题描述

以下是使用surveyjs 构建一个带有4 个选项的问题的调查的JSON,每个选项都有一个值(分数)。

此处的工作示例: https://embed.plnkr.co/20U6sdQpOiTxd5ps83dT/

以下是必需的:

A. 我需要在这里回答多个问题 (25)。现在只有 1 个。

B.如果您回答了 4 个或更多问题“未知”,从总分中减去 20 分。

C. 基于分数的结果(基于文本): 75-100 总分:不需要我们的服务

50-75 总分:您需要评估

总分 50:需要我们的服务

这里是 JSON 代码

Survey
    .StylesManager
    .applyTheme("default");

Survey
    .JsonObject
    .MetaData
    .addProperty("question",{name: "score:number"});
    
Survey.JsonObject.MetaData.addProperty("itemvalue",{name: "score:number"});

var json = {
    questions: [
        {
            "type": "boolean","name": "myboolean","label": "ten","score": 10
        },{
            type: "radiogroup",name: "myradiogroup",title: "Do you have multiple business applications in use by your varIoUs departments in the daily operation of the company?",colCount: 4,choices: [
                {
                  value: "Yes",score: 4
                },{
                  value: "No",{
                  value: "UnkNown",score: 0
                },{
                  value: "NA",score: 0
                }
            ]
        }
    ]
};

window.survey = new Survey.Model(json);

survey
    .onComplete
    .add(function (survey) {
       var totalscore = 0;
       var data = survey.data;
        
       Object.keys(data).forEach(function(qName) {
          var question = survey.getQuestionByName(qName);
          var qValue = data[qName];
          
          if (question.choices) {
            question.choices.forEach(function(choice) {
              if (choice.value === qValue) {
                totalscore += +choice.score;
              }
            });
          } else {
            totalscore += +question.score;
          }
          
        });
        
        document
            .querySelector('#surveyResult')
            .innerHTML = "total score: " + JSON.stringify(totalscore);
    });

$("#surveyElement").Survey({model: survey});

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)