我是Qualtrics和JavaScript的新手。由于特殊原因,我正在使用“热点”问题。我希望能够统计和显示参与者点击的热点地区的数量。所以我只需要运行一些简单的JavaScript来计算已被点击的区域。我尝试了许多事情,但没有成功。基本上,我创建了一个嵌入式数据元素,称之为“NumberofChoices”,我想在问题上运行一些JavaScript来计算选择的数量,并用正确的值替换这个嵌入式数据元素。如何统计Qualtrics上选定答案的数量?
有人建议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)
})
});
这是行不通的。它总是返回一个0值,所以我认为.click函数没有更新变量。 (我确实在头文件中有\ script并且没有冲突代码,所以这不是问题)。
我也试着像
Qualtrics.SurveyEngine.addOnload(function()
{
var Box1=0
this.questionclick = function(click,Q1_1){
Box1 = 1;
Qualtrics.SurveyEngine.setEmbeddedData("NumberofChoices",Box1)
}
});
这并不工作,但只适用于箱的元素之一。如果我复制它多个,然后尝试总结它们,它只返回1的值。另外,我仍然需要添加模数命令。我不确定上述的=函数(事件,元素)。我将它保留为(事件,元素),还是将其替换为实际的点击事件和元素?
如果我这样做,这是行不通的
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,因此我不知道如何解决这个问题!我将不胜感激任何帮助。
非常感谢你的帮助!我问这个问题后,我开始思考这条线。您是否知道Qualtrics是否在不向主题展示的问题中运行JavaScript?例如,如果下一个问题附带了显示条件,JavaScript是否会针对该问题运行,并且只有在满足显示条件时才更新嵌入数据?或者它会运行,不管是什么? – KNielsen
你恰巧有一个关于如何计算使用管道文本框的建议吗?我发现唯一的管道文本选项是使用Selected Choices for Answer(将选择的选项分解为“打开”变量的名称)。但我仍然需要数这些。所以我尝试这样的事情,但没有运气\\ var Q1boxes =“$ {q:// QID5/ChoiceGroup/SelectedChoicesForAnswer/2}”; \t var Q1boxes = parseInt(Q1boxes); \t var Q1boxesCount = Q1boxes.length; \尽管这在技术上不正确,但我需要去努力。 – KNielsen
对不起...我不熟悉这个界面! – KNielsen