0

我无法在 Qualtrics 中随机化答案选择。我想要随机化,以便保留答案选择的顺序,但顺序是升序或降序。

例如,我想在订单 A 和订单 B 之间随机化

订单 A)

  • 1
  • 2
  • 3

订单 B)

  • 3
  • 2
  • 1

一种方法是使用块随机化并为订单 A 和订单 B 创建单独的块。但我有很多问题想以这种方式随机化。我不想以太多的块结束。

有没有人有 Javascript 代码,所以随机化发生在每个问题中,而不必创建两个单独的问题?

4

2 回答 2

1

我的解决方案是在每个问题中包含两次响应,并使用 Javascript 隐藏一个排序或另一个排序。

首先,添加一个多项选择题,其中的答案首先按升序排列,然后按降序排列。例如,


问题文本

  • 回应 1

  • 回应 2

  • 回应 3

  • 回应 3

  • 回应 2

  • 回应 1


现在,将此 Javascript 添加到您希望随机排序的每个问题中。

var numChoices = this.getChoices( "radio" ).length;
var choices = this.getChoices( "radio" );
var pivot = parseInt(numChoices) / 2
var QID = this.getQuestionInfo().QuestionID;
var rand = Math.round(Math.random());

if (rand == 1) {
    for (var i = 0; i < pivot; i++) {
        var idString = ("QR~" + QID + "~" + choices[i]);
        document.getElementById(idString).parentNode.style.display = "none";
    }
} else {
    for (var i = pivot; i < numChoices ; i++) {
        console.log("i: " + i + "pivot: " + pivot);
        var idString = ("QR~" + QID + "~" + choices[i]);
        document.getElementById(idString).parentNode.style.display = "none";
    }
}

此 Javascript 随机隐藏一个排序或另一个。该代码是以编程方式编写的,因此您可以输入任意数量的响应(只要您包含两个订单)。

于 2015-06-09T19:54:30.637 回答
0

我只需要这样做才能进行调查。理想情况下,您不想重复/隐藏响应。该解决方案只是在一半时间内将选择随机移动到相反的顺序。

Qualtrics.SurveyEngine.addOnload(function() {
    var rand = Math.round(Math.random());
    if(rand == 1) {
        var qid = this.questionId;
        var choices = $(qid).select('li.Selection');
        var lastChoice = choices.last();
        for(i=0;i<choices.length-1;i++) {
            $(lastChoice).insert({
                after: choices[i]
            });
        }   
    }
});
于 2015-06-10T19:53:26.577 回答