I have a form
with two text boxes, one select drop down and one radio button. When the enter key is pressed, I want to call a javascript function (User defined), but when I press it, the form is submitted.
How do I prevent the form
from being submitted when the enter key is pressed?
Below code will add listener for
ENTER
key on entire page.This can be very useful in screens with single Action button eg Login, Register, Submit etc.
Tested on all browsers.
Use both
event.which
andevent.keyCode
:Override the
onsubmit
action of the form to be a call to your function and add return false after it, ie:A jQuery solution.
I came here looking for a way to delay the form submission until after the blur event on the text input had been fired.
Would be nice to get a more general version that fired all the delayed events rather than just the form submit.
if you want to do it using purly java script here is an example that work perfectly
Let's say this is your html file
in your popup.js file just use this function
Ok, so imagine you have the following textbox in a form:
In order to run some "user defined" script from this text box when the enter key is pressed, and not have it submit the form, here is some sample code. Please note that this function doesn't do any error checking and most likely will only work in IE. To do this right you need a more robust solution, but you will get the general idea.
returning the value of the function will alert the event handler not to bubble the event any further, and will prevent the keypress event from being handled further.
NOTE:
It's been pointed out that
keyCode
is now deprecated. The next best alternativewhich
has also been deprecated.Unfortunately the favored standard
key
, which is widely supported by modern browsers, has some dodgy behavior in IE and Edge. Anything older than IE11 would still need a polyfill.Furthermore, while the deprecated warning is quite ominous about
keyCode
andwhich
, removing those would represent a massive breaking change to untold numbers of legacy websites. For that reason, it is unlikely they are going anywhere anytime soon.