需要帮助在Qualtrics中实现Javascript计算

时间:2017-10-07 05:22:12

标签: javascript qualtrics

我在Qualtrics中实现此代码时遇到问题。现在,我已经在调查流程中将这两个嵌入数据字段创建到块中,并且我想要对其进行计算:" Lambda_Block_1"和" Lambda_Mat"。

在我用矩阵表询问一系列问题后,我会分页。 然后我的下一个问题是占位符/计时窗口。在这个问题中,我放置了这个Javascript:

Qualtrics.SurveyEngine.addOnload(function()
{
var block_1= [parseInt("${q://QID664/SelectedAnswerRecode/1}"),
  parseInt("${q://QID664/SelectedAnswerRecode/2}"),
  parseInt("${q://QID664/SelectedAnswerRecode/3}"), 
  parseInt("${q://QID664/SelectedAnswerRecode/4}"), 
  parseInt("${q://QID664/SelectedAnswerRecode/5}"), 
  parseInt("${q://QID664/SelectedAnswerRecode/6}"), 
  parseInt("${q://QID664/SelectedAnswerRecode/7}"), 
  parseInt("${q://QID664/SelectedAnswerRecode/8}"), 
  parseInt("${q://QID664/SelectedAnswerRecode/9}"), 
  parseInt("${q://QID664/SelectedAnswerRecode/10}")];

var lambda_mat
lambda_mat= [.7, .9, 1.1, 1.3, 1.5, 1.7, 1.9, 2.1, 2.3];    
lambda_mat.reverse();

  for(i=0;i<lambda_mat.length;i++) {
switchpoints[i] = switchpoints[i] * lambda_mat[i];
}  
var filtered_switchpoint
filtered_switchpoint= switchpoints.filter(0);

var lambda_block_1  
if (switchpoints.allValuesSame() == true || filtered_switchpoint.length              >1){
lambda_block_1=0;
}else{
lambda_block_1= filtered_switchpoint;
}
Qualtrics.SurveyEngine.setEmbeddedData("Lambda_Block_1",lambda_block_1); 
});

我需要帮助在Qualtrics中运行它。 有谁知道为什么这不起作用? Javascript编码错误?

1 个答案:

答案 0 :(得分:0)

您有几个语法错误:

  • 第一行缺少parseInt和引号
  • 三个地方缺少命令分号结尾
  • 无与伦比});在最后一行(但你可能只是在顶部没有包含addOnLoad行)。

此外,lambda_mat是一个数组。要使setEmbeddedData正常工作,您需要先将其转换为逗号分隔的字符串。 Lambda_Block_1和Lambda_Mat都必须在使用JavaScript的问题之前在调查流程中定义。

您应该考虑学习使用浏览器开发人员工具调试器。