将JavaScript变量转换为管道文本

时间:2018-07-02 19:07:32

标签: javascript qualtrics

我有一个自定义脚本,可生成文本输出。我想将此文本通过管道传递到嵌入式数据字段中,然后在同一问题中作为管道文本显示。我设置了一个空白的嵌入式数据字段(我们将其称为myField),并在问题文本中包含了${e://Field/myField}。该脚本确实将管道传输到最终数据,而不是问题文本。

下面显示的代码使用在堆栈溢出时找到的代码来生成类似的输出,等等:

Qualtrics.SurveyEngine.addOnload(function()
{
    function getRandomSubarray(arr, size) {
    var shuffled = arr.slice(0), i = arr.length, temp, index;
    while (i--) {
        index = Math.floor((i + 1) * Math.random());
        temp = shuffled[index];
        shuffled[index] = shuffled[i];
        shuffled[i] = temp;
    }
    return shuffled.slice(0, size);
}

var x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
var fiveRandomMembers = getRandomSubarray(x, 5);
Qualtrics.SurveyEngine.setEmbeddedData('myField', fiveRandomNumbers);
});

我是否缺少对这个特定问题的参考?

1 个答案:

答案 0 :(得分:1)

在将页面发送到浏览器之前,在Qualtrics服务器上解析了管道变量。如果要动态更新页面上的文本,则必须使用JavaScript而不是管道。因此,请在您的问题中使用管道输入文本字段的地方放置一个带有ID的跨度。

<span id="fiveRandomMembers"></span>

然后在脚本末尾更新跨度的innerHTML。

jQuery("#fiveRandomMembers").html(fiveRandomMembers);