Detect the Enter key in a text input field

Detect the Enter key in a text input field

I’m trying to do a function if enter is pressed while on specific input.
What I’m I doing wrong?
$(document).keyup(function (e) {
if ($(“.input1”).is(“:focus”) && (e.keyCode == 13)) {
// Do something
}
});

Is there a better way of doing this which would say, if enter pressed on .input1 do function?

Solutions/Answers:

Solution 1:

$(".input1").on('keyup', function (e) {
    if (e.keyCode == 13) {
        // Do something
    }
});


//keyup not compatible with Jquery select(), Keydown is.

Solution 2:

event.key === “Enter”

More recent and much cleaner: use event.key. No more arbitrary number codes!

const node = document.getElementsByClassName(".input")[0];
node.addEventListener("keyup", function(event) {
    if (event.key === "Enter") {
        // Do work
    }
});

If you must use jQuery:

$(document).keyup(function(event) {
    if ($(".input1").is(":focus") && event.key == "Enter") {
        // Do work
    }
});

Mozilla Docs

Supported Browsers

Solution 3:

$(document).keyup(function (e) {
    if ($(".input1:focus") && (e.keyCode === 13)) {
       alert('ya!')
    }
 });

Or just bind to the input itself

$('.input1').keyup(function (e) {
    if (e.keyCode === 13) {
       alert('ya!')
    }
  });

To figure out which keyCode you need, use the website http://keycode.info

Related:  How to change ReactJS styles dynamically?

Solution 4:

Try this to detect the Enter key pressed in a textbox.

$(function(){

$(".input1").keyup(function (e) {
    if (e.which == 13) {
        // Enter key pressed
    }
 });

});

Solution 5:

It may be too late to answer this question. But the following code simply prevents the enter key. Just copy and paste should work.

        <script type="text/javascript"> 
        function stopRKey(evt) { 
          var evt = (evt) ? evt : ((event) ? event : null); 
          var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null); 
          if ((evt.keyCode == 13) && (node.type=="text"))  {return false;} 
        } 

        document.onkeypress = stopRKey; 

        </script>

Solution 6:

The best way I found is using keydown ( the keyup doesn’t work well for me).

Note: I also disabled the form submit because usually when you like to do some actions when pressing Enter Key the only think you do not like is to submit the form 🙂

$('input').keydown( function( event ) {
    if ( event.which === 13 ) {
        // Do something
        // Disable sending the related form
        event.preventDefault();
        return false;
    }
});