【发布时间】:2017-05-17 18:28:34
【问题描述】:
我正在编写一项 Qualtrics 调查,其中将向几个不同的受访者流展示不同的属性子集,以便在矩阵问题中进行评分。
属性和问题都有很多,因此为了避免花费数天时间点击答案级别的显示逻辑,我改编了来自@T 的答案。 Gibbons (Use Javascript for Qualtrics matrix table display logic) 并使用 Javascript 通过以下代码屏蔽子集。
var quest = this.questionId;
var choices = this.getChoices();
var survey_stream = "${e://Field/E8}";
var stream;
var stream1 = ["1", "2", "3", "4", "5", "6"];
var stream2 = ["2", "3", "4", "7", "8", "9"];
var stream3 = ["1", "2", "3", "4", "5", "6"];
if (survey_stream=="1") {stream=stream1;}
if (survey_stream=="2") {stream=stream2;}
if (survey_stream=="3") {stream=stream3;}
var idName;
var hiddenChoices;
hiddenChoices = choices.filter(function(x) {
return !stream.includes(x);
});
hiddenChoices.each(function(item) {
idName = "header~"+quest+"~"+item;
$(idName).up().hide();
});
理想情况下,显示的剩余项目也将是随机的,但是为问题选择标准随机化选项会通过返回正确数量的答案选项,但返回错误的子集来“破坏”上面的代码。我的猜测是它在屏蔽脚本运行之前随机化了选择的顺序,所以在应用我的流的位置引用之前选择已经乱序了。
由于我在 Javascript 方面的经验非常有限,并且 Qualtrics 文档在这方面非常糟糕,是否有任何建议可以帮助我调整我的代码以包含我的选择子集的正确随机化?
【问题讨论】:
-
需要注意代码的一个小更新,Internet Explorer 不支持 array.includes(),因此除非您复制/粘贴此处找到的 polyfill 代码link,否则屏蔽将不起作用。跨度>
标签: javascript random qualtrics