使用Javascript

时间:2017-05-17 18:28:35

标签: javascript random qualtrics

我正在编制一个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文档方面的经验非常有限,这方面很糟糕,有什么建议我可以调整我的代码以包含我选择子集的正确随机化吗?

1 个答案:

答案 0 :(得分:0)

对于你的hiddenChoices.each函数试试这个:

hiddenChoices.each(function(item) {
  idName = "QR~"+quest+"~"+item+"~1";
  $(idName).up('tr.ChoiceRow').hide();
});