JavaScript 变量到管道文本
JavaScript variable to piped text
我有一个生成文本输出的自定义脚本。我想将此文本通过管道传输到嵌入式数据字段中,然后该字段在同一问题中显示为管道文本。我设置了一个空白的嵌入数据字段(我们称之为 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);
});
我是否遗漏了对这个特定问题的引用?
管道变量在将页面发送到浏览器之前在 Qualtrics 服务器上得到解析。如果你想动态更新页面上的文本,你必须使用 JavaScript,而不是管道。因此,在问题中有管道文本字段的位置放置一个带有 id 的跨度。
<span id="fiveRandomMembers"></span>
然后在脚本末尾更新 span 的 innerHTML。
jQuery("#fiveRandomMembers").html(fiveRandomMembers);
我有一个生成文本输出的自定义脚本。我想将此文本通过管道传输到嵌入式数据字段中,然后该字段在同一问题中显示为管道文本。我设置了一个空白的嵌入数据字段(我们称之为 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);
});
我是否遗漏了对这个特定问题的引用?
管道变量在将页面发送到浏览器之前在 Qualtrics 服务器上得到解析。如果你想动态更新页面上的文本,你必须使用 JavaScript,而不是管道。因此,在问题中有管道文本字段的位置放置一个带有 id 的跨度。
<span id="fiveRandomMembers"></span>
然后在脚本末尾更新 span 的 innerHTML。
jQuery("#fiveRandomMembers").html(fiveRandomMembers);