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) 秒更改为任意数字,下一步按钮将被激活并准备好下一步点击,但不会自动将您转到下一页。
我是 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) 秒更改为任意数字,下一步按钮将被激活并准备好下一步点击,但不会自动将您转到下一页。