I've been using the following code from a gist to allow the use of the 'enter' key to advance to the next question in addition to the next button:
```
Qualtrics.SurveyEngine.addOnload(function()
{
/*Place your JavaScript here to run when the page loads*/
/*Advance on enter - modified from the following gist: */
/*https://gist.github.com/mattbloomfield/de3a20a5180c274f79e7dfcaeb35ea66*/
var qid = this.questionId;
document.onkeydown = function(event) {
console.log('keydown',event);
if (event.which == 13) {
event.preventDefault();
jQuery('#NextButton').click();
}
}
});
```
I want to delay the page advance for 3 seconds, which I'm currently doing through a timing question and enabling submit after 3 seconds.
However, I've noticed while testing that hitting the enter key can jump ahead before the 3 seconds are finished (when the next button is displayed). Does anyone know what the right way to incorporate this delay into the Javascript?
Page 1 / 1
Hi ,
I'd not use Qualtrics timing, but design my own timing in JS. You can use the `setTimeout() ` method.
I'd not use Qualtrics timing, but design my own timing in JS. You can use the `setTimeout() ` method.
Thank you. I'll look into using that as an option and see if I can get the behavior I'm looking for.
Okay. I managed to get the behavior I wanted with a bit of working with setTimeout. For reference to anyone in the future, this worked:
```
Qualtrics.SurveyEngine.addOnReady(function()
{
/*Place your JavaScript here to run when the page is fully displayed*/
$('NextButton').disable();
setTimeout(function() { jQuery("#NextButton").enable();
},3000);
/*Advance on enter - modified from the following gist: */
/*https://gist.github.com/mattbloomfield/de3a20a5180c274f79e7dfcaeb35ea66*/
var qid = this.questionId;
setTimeout(() => { document.onkeydown = function(event) {
console.log('keydown',event);
if (event.which == 13) {
event.preventDefault();
jQuery('#NextButton').click();
}
}}, 3000);
});
```
```
Qualtrics.SurveyEngine.addOnReady(function()
{
/*Place your JavaScript here to run when the page is fully displayed*/
$('NextButton').disable();
setTimeout(function() { jQuery("#NextButton").enable();
},3000);
/*Advance on enter - modified from the following gist: */
/*https://gist.github.com/mattbloomfield/de3a20a5180c274f79e7dfcaeb35ea66*/
var qid = this.questionId;
setTimeout(() => { document.onkeydown = function(event) {
console.log('keydown',event);
if (event.which == 13) {
event.preventDefault();
jQuery('#NextButton').click();
}
}}, 3000);
});
```
Leave a Reply
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.