Calling back a keyboard binding javascript function | XM Community
Skip to main content
Hello! I am currently writing a survey where I want to use the spacebar to advance, using the following code: Qualtrics.SurveyEngine.addOnload(function() { $('NextButton').hide(); document.on("keydown", function(e) { if (e.keyCode === 32) $('NextButton').click(); }); }); The issue is, once I enter it into one question, it applies for the rest of the questions too and becomes an issue when I need respondents to type in a response. If a respondent hits the space bar when typing out their response, they will advance to the end of the survey. With that said, my question is: How do I unbind the space bar after the respondent is finished with the multiple choice section? I am not very well versed in JavaScript, and while I did attempt to write a callback script for the "Upon page exit" section, I couldn't get it to work. Thanks!
I believe that in this instance .on is from prototypejs. If it is, you could assign it to a handler and then use .stop(): ``` var handler = document.on("keydown", function(e) { if (e.keyCode === 32) { handler.stop(); $('NextButton').click(); }); ``` I recommend using jQuery's .on and .off instead.