Qualtrics:按回车键模拟继续按钮

Qualtrics: Pressing enter key to emulate continue button

我是 JavaScript 的新手,目前我正在尝试向我的 Qualtrics 调查添加自定义代码,以便按回车键继续调查。我有一个应该可以工作的代码;但是,我收到 "Unexpected token )" 错误。

代码如下:

Qualtrics.SurveyEngine.addOnload(function()
{
    document.addEventListener("keydown", function(e) {
        if (e.keyCode === 13) {

            function(){
                that.clickNextButton();
            }

  }
    }

});

"clickNextButton" 函数是在 Qualtrics API 文档中找到的,应该模拟下一个按钮点击。该函数是 clickNextButton(),但提供的示例代码为 that.clickNextButton()。

他们使用的示例如下:

//Hides the next button and displays the question
//for 5 seconds before moving to the next page
this.hideNextButton();
var that = this;
(function(){that.clickNextButton();}).delay(5);

我不需要隐藏按钮功能或延迟,只是想包含一个如何使用它的示例。

非常感谢任何帮助,提前致谢!

这取决于作用域,或者具体取决于函数 clickNextButton 所在的位置。 如果您不在乎超时,您应该能够从 Qualtrics.SurveyEngine 函数中删除 'that' 这个词,它应该可以正常工作。

该功能可能在您当前的范围内不可用。因此,如果删除 'that' 不起作用。把它放回去并把 var that = this;在函数调用之前的行中。这根本不是一种整洁的做事方式,但它可能会为您解决问题。

值得一读。 http://www.w3schools.com/js/js_scope.asp

Meatloaf 不是说过类似...我愿意为范围做任何事...但我没有那样做吗?

正如我在评论中所说...看看它是否解决了您的错误

Qualtrics.SurveyEngine.addOnload(function()
    {
        document.addEventListener("keydown", function(e) {
            if (e.keyCode === 13) {

                function(){
                    that.clickNextButton();
                }

            }
        } ); // here was a missing bracket here
    });

这是一个有效的简化版本(已更新以隐藏 NextButton):

Qualtrics.SurveyEngine.addOnload(function()  {
    $('NextButton').hide();         
    document.on("keydown", function(e) {
         if (e.keyCode === 13) $('NextButton').click();
    });
});

所以我在一个问题中嵌入了一个视频,我需要禁用“下一步”按钮 15 秒,这样我就知道有人观看了自动播放视频。

这对我非常有效:

Qualtrics.SurveyEngine.addOnload(function()
{
//Hides the next button and displays the question
//for 15 seconds before moving to the next page
this.disableNextButton();
var that = this;
(function(){that.enableNextButton();}).delay(15);

});

您可以将 (15) 秒更改为任意数字,下一步按钮将被激活并准备好下一步点击,但不会自动将您转到下一页。