Qualtrics:按enter键模拟继续按钮

时间:2016-09-16 14:59:16

标签: javascript qualtrics

我是JavaScript的新手,我目前正在尝试在我的Qualtrics调查中添加一个自定义代码,这使得按键输入键继续进行调查。我有一个应该正常工作的代码;但是,我收到了“意外的令牌”错误。

以下是代码:

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

            function(){
                that.clickNextButton();
            }

  }
    }

});

在Qualtrics API文档中找到了“clickNextButton”函数,并且应该模拟下一次按钮单击。该函数是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);

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

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

4 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

取决于范围,或者具体取决于clickNextButton函数所在的位置。 如果您不打扰超时,您应该只能从Qualtrics.SurveyEngine函数中删除“that”一词,它应该可以正常工作。

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

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

没有肉饼说的话......我会为范围做任何事......但我不这样做?

答案 2 :(得分:0)

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

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

                function(){
                    that.clickNextButton();
                }

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

答案 3 :(得分:0)

所以我在一个问题中嵌入了一个视频,我需要禁用“下一步”按钮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)秒更改为任意数字,下一个按钮将被激活并准备好接下来点击,但不会自动发送到下一页。