I want to retain the conventional 'form submits when i press Enter' behavior because users are familiar with. But by reflex, they often hit enter when they finish with a text input box - but before they are actually done with the complete form.
I'd like to hijack the Enter key only when then focus is on a certain class of input.
Looking Related Questions this looks like what I'm looking for:
if (document.addEventListener) { document.getElementById('strip').addEventListener('keypress',HandleKeyPress,false); } else { document.getElementById('strip').onkeypress = HandleKeyPress; }
but the if (document.addEventListener) {
part is unfamiliar to me.
$(document). on('keyup keypress', 'form input[type="text"]', function(e) { if(e. keyCode == 13) { e. preventDefault(); return false; } });
To prevent form submission when the Enter key is pressed in React, use the preventDefault() method on the event object, e.g. event. preventDefault() . The preventDefault method prevents the browser from refreshing the page when the form is submitted.
To disable form fields, use the CSS pointer-events property set to “none”.
You can capture and cancel the enter keypress
on those fields like this:
$('.noEnterSubmit').keypress(function(e){ if ( e.which == 13 ) return false; //or... if ( e.which == 13 ) e.preventDefault(); });
Then on your inputs just give them a class="noEnterSubmit"
:)
Looking ahead in case others find this later, in jQuery 1.4.3 (not out yet) you can shorten it to this:
$('.noEnterSubmit').bind('keypress', false);
<input type="text" onkeydown="return (event.keyCode!=13);" />
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With