我是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);
我不需要隐藏按钮功能或延迟,但只想包含一个如何使用它的示例。
非常感谢任何帮助,提前谢谢!
答案 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)秒更改为任意数字,下一个按钮将被激活并准备好接下来点击,但不会自动发送到下一页。