如何向Qualtrics添加keydown函数?

时间:2015-09-29 19:56:55

标签: javascript time keydown qualtrics

首先,感谢阅读这篇文章。

我试图强迫参与者每次阅读几张照片30秒。对于某些特定图片,参与者被要求按“K”。我想知道如果参与者正确地按下“K”分配的图片并且在看到那些未分配的图片时错误地按下“K”,我怎么能记录。

我使用这两行删除上一页/下一页按钮。参与者可在30秒后自动前进到下一个屏幕。

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

我也尝试使用以下功能并发送30秒延迟提交。但是,此代码不起作用。

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

var that = this;

Event.observe(document, 'keydown', function keydownCallback(e) {
var choiceID = null;
switch (e.keyCode) {
case 74: // 'j' was pressed
  choiceID = 1;
  break;
case 75: // 'k' was pressed
  choiceID = 2;
  break;
}

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

再次感谢你!

1 个答案:

答案 0 :(得分:0)

瑞恩

我还在Qualtrics LinkedIn Group上看到了你的帖子。从那个和那个,我想我已经拼凑了你想要做的事情:你想要显示30秒的图片并记录是否有人按下" k"在那段时间,但没有进入下一页。

因此,您的页面上应该有两个问题:(1)显示图片的描述性文字问题和(2)非强制性多项选择,多项答案问题,单一答案选项将记录是否" K"被压了。如果您还有其他任何内容(例如时间问题),请将其删除。然后将以下脚本添加到多项选择题。它将隐藏按钮,隐藏多项选择题,隐藏问题分隔符,记录是否" k"按下(作为多项选择题的答案),并在30秒后推进页面。

Qualtrics.SurveyEngine.addOnload(function()
{
    setTimeout("$('NextButton').click()",30*1000);
    $('NextButton').hide();
    if($('PreviousButton')) $('PreviousButton').hide();
    $(this.questionId).hide();
    $$('.Separator').invoke('hide');
    var that = this;

    Event.observe(document, 'keydown', function keydownCallback(e) {
        if(e.keyCode == 75) {
            that.setChoiceValue(1,'true');
        }
    });
});