我正在使用质量度量为用户提供两个选择,一个在左边,一个在右边。我想让他们使用键盘上的箭头键进行选择,目前我有代码可以让他们使用以下命令:

Qualtrics.SurveyEngine.addOnload(function()
{
    /*Place Your Javascript Below This Line*/

this.hideNextButton();
this.hidePreviousButton();

var that = this;

Event.observe(document, 'keydown', function keydownCallback(e) {
    var qid = this.questionId;
    var order = $("QR~"+qid+"~DisplayOrder").value.split("|");
    var left = order[0];
    var right = order[1];


  switch (e.keyCode) {
    case 37: // 'L' was pressed
      choiceID = left
      break;
    case 39: // 'R' was pressed
      choiceID = right
      break;
  }

  if (choiceID) {
    Event.stopObserving(document, 'keydown', keydownCallback);
    that.setChoiceValue(choiceID, true);
    that.clickNextButton();
  }
});

    });


如果答案是随机的,并且问题没有被逆转,则可以正常工作。如果答案是相反的,则在按下左箭头键时将选择右侧的选项,反之亦然。我怀疑我需要某种方法来将选择ID设置为实际显示的ID,或者完全更改第三行和第六行,但是API中一些更有希望的功能似乎并没有成功。有什么建议吗?

最佳答案

您可以获取随机选择的显示顺序,然后向左右分配值(我假设这是一个简单的多项选择问题):

var qid = this.questionId;
var order = $("QR~"+qid+"~DisplayOrder").value.split("|");
var left = order[0];
var right = order[1];


然后,在您的代码中:

switch (e.keyCode) {
    case 37: // 'L arrow' was pressed
        choiceID = left
        break;
    case 39: // 'R arrow' was pressed
        choiceID = right
        break;
}

关于javascript - 将键盘使用与Qualtrics中的答案随机化集成在一起,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28976286/

10-09 20:00
查看更多