使用Javascript for循环设置Qualtrics Embedded Data

时间:2016-06-01 16:21:58

标签: javascript qualtrics

我正在进行质量调查,并且需要能够根据随机选择的实验条件设置许多具有不同值的嵌入数据字段。

在调查流程中,我输入了所需嵌入数据值的所有名称。

我希望此代码在调查开始时执行,并通过并设置这些嵌入数据变量的值。

我使用for循环的原因是因为变量的名称如下: set1a set1b set1c

var condition  = Math.floor((Math.random() * 3) + 1)
var conditions =[ [8,8,8,5,5,5,5,2,2,2], [8,8,8,7,7,7,7,2,2,2], [10,10,10,5,5,5,5,2,2,2], [10,10,10,7,7,7,7,2,2,2]]
var values = condition[conditions]
var letters ="abcdefghij"


Qualtrics.SurveyEngine.addOnload(function(values)
{
    for (var i = 0; i < values.length; i++ ) {
        var dataname = "set1" + letters.charAt(i) 
        Qualtrics.SurveyEngine.setEmbeddedData(dataname,values[i]);
     }
 });

但是,此代码不起作用。 当我尝试在调查中稍后使用管道文本调用变量时(在分页后),它们似乎没有存储。

1 个答案:

答案 0 :(得分:0)

你有两个问题。

首先,如果它位于.addOnload函数中,您只能在Qualtrics中设置Javascript,例如:

Qualtrics.SurveyEngine.addOnload(function(values)
{
// Your code
});

其次,您的分配方法 - 值 - 会抛出错误消息。

Qualtrics在for循环中保存嵌入数据没有问题,所以如果你修复这两点,你应该好好去。