需要帮助在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编码错误?
您有几个语法错误:
- 缺少parseInt函数和报价在第一线 在三个地方
- 无与伦比})命令分号
- 缺少结束;在最后一行(但也许你只是没有在顶部添加addOnLoad行)。
此外,lambda_mat是一个数组。要使setEmbeddedData正常工作,需要先将其转换为逗号分隔的字符串。在JavaScript问题之前,Lambda_Block_1和Lambda_Mat都必须在调查流程中定义。
您应该考虑学习使用浏览器开发工具调试器。
你现在可以检查吗?我做了编辑?谢谢 –
我想知道我是否在正确的地方给它打电话。在第一个模块中,我在Survey Flow中初始化变量Lambda_Block_1。然后在第二个块中,第一个问题是矩阵表(我想用数学来做数据),然后是分页符,带文本的页面,然后是分页符,然后是带文本的页面 - 这里是我运行的地方的JavaScript。这听起来不错吗? –
在var lambda_mat和var filtered_switchpoint之后仍然缺少一个分号。你在哪里运行它听起来很好。 –
代码不工作不是一个解释... – dda
@dda我编辑我的评论更清晰。谢谢。 –