如何计算 Qualtrics 上所选答案的数量?

How to count number of selected answers on Qualtrics?

我是 Qualtrics 和 JavaScript 的新手。出于特殊原因,我正在使用 "hot spot" 问题。我希望能够统计并显示参与者点击的热点区域的数量。所以我只需要 运行 一些简单的 JavaScript 计算被点击的区域。我尝试了很多事情都没有成功。基本上,我已经创建了一个嵌入式数据元素,称之为 "NumberofChoices" 我想 运行 一些 JavaScript 一个问题来计算选择的数量并用正确的替换这个嵌入式数据元素价值。

有人向我建议 jQuery,所以我尝试了

Qualtrics.SurveyEngine.addOnload(function()
{

var Box1 = 0 
var Box2 = 0
var Box3 = 0
var Box1Clicked = 0
var Box2Clicked = 0
var Box3Clicked = 0


$j('input[name=Q1_1]').click( function(){
Box1 = Box1 + 1
Box1Clicked = Box1 % 2 == 1 
Qualtrics.SurveyEngine.setEmbeddedData("Box1", temp)
})

$j('input[name=Q1_2]').click( function(){
Box2 = Box2 + 1
Box2Clicked = Box2 % 2 == 1
Qualtrics.SurveyEngine.setEmbeddedData("Box2",temp)
})

$j('input[name=Q1_3]').click( function(){
Box3 = Box3 + 1
Box3Clicked = Box3 % 2 == 1
Qualtrics.SurveyEngine.setEmbeddedData("Box3",temp)
})


$j('#NextButton').click(function() {
   var howManyClickedQ1 = Box1Clicked + Box2Clicked + Box3Clicked 
Qualtrics.SurveyEngine.setEmbeddedData("NumberofChoices",howManyClickedQ1)
   })

});

这不起作用。它总是 returns 值为 0,所以我认为 .click 函数没有更新变量。 (我确实有 \script 并且 header 中没有冲突代码,所以这不是问题)。

我也尝试过

Qualtrics.SurveyEngine.addOnload(function()
{
var Box1=0
this.questionclick = function(click,Q1_1){
Box1 = 1;
Qualtrics.SurveyEngine.setEmbeddedData("NumberofChoices",Box1)
}
});

这确实有效,但仅适用于其中一个框元素。如果我将它复制多个,然后尝试将它们加起来,它只会 returns 一个值 1。另外,我仍然需要添加模命令。我不确定上面的 =function(event, element) 。我是将其保留为(事件,元素)还是将其替换为实际的点击事件和元素?

如果我这样做,它不起作用

this.questionclick = function(event,element){
    if (element=='Q5_1'){Box1 = 1;}
    else if (element=='Q5_2'){Box2=1;}
    else if (element=='Q5_3'){Box3=1;}
    else if (element=='Q5_4'){Box4=1;}
    else {Box1=0;}
howManyClickedQ1 = Box1 + Box2 + Box3 + Box4 + Box5 + Box6 + Box7;
Qualtrics.SurveyEngine.setEmbeddedData("NumberofChoices",howManyClickedQ1);
}

正如我所说,我以前从未使用过 Qualtrics,也从未使用过 JavaScript,所以我不知道如何解决这个问题!如果能得到任何帮助,我将不胜感激。

您选择了一项非常困难的任务作为开始。问题是热点区域位于 svg 中,浏览器将其视为外部对象。任何引用 svg 的脚本都必须在 svg 中。您的脚本不是,而且确实没有任何方法可以将脚本添加到 svg。

如果您需要计算点击区域的数量,请在热点问题之后使用热点问题中的管道值执行此操作。您可以在 Web 服务脚本或附加到后续问题的 javascript 中执行 parsing/calculations。

编辑:根据以下评论添加。

JavaScript 的一部分,用于计算后续问题中检查的区域:

var count = 0;
if("${q://QID1/ChoiceGroup/SelectedAnswers/11}" == "On") count++;  //region 1
if("${q://QID1/ChoiceGroup/SelectedAnswers/12}" == "On") count++;  //region 2
// etc...