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

问题描述:

我在Qualtrics中实现此代码时遇到问题。现在,我已经将这两个嵌入式数据字段创建在调查流程中,包含我想要计算的响应:“Lambda_Block_1”和“Lambda_Mat”。需要帮助在Qualtrics中实现Javascript计算

当我用矩阵表问了一系列问题后,我做了一个分页符。 然后我的下一个问题是一个占位符/时间窗口。在这个问题中,我把这个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编码错误?

+0

代码不工作不是一个解释... – dda

+0

@dda我编辑我的评论更清晰。谢谢。 –

您有几个语法错误:

  • 缺少parseInt函数和报价在第一线
  • 在三个地方
  • 无与伦比})命令分号
  • 缺少结束;在最后一行(但也许你只是没有在顶部添加addOnLoad行)。

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

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

+0

你现在可以检查吗?我做了编辑?谢谢 –

+0

我想知道我是否在正确的地方给它打电话。在第一个模块中,我在Survey Flow中初始化变量Lambda_Block_1。然后在第二个块中,第一个问题是矩阵表(我想用数学来做数据),然后是分页符,带文本的页面,然后是分页符,然后是带文本的页面 - 这里是我运行的地方的JavaScript。这听起来不错吗? –

+0

在var lambda_mat和var filtered_switchpoint之后仍然缺少一个分号。你在哪里运行它听起来很好。 –