简体   繁体   中英

Event listener doesn't work for Enter key

What may be the reason, that event listener of Enter key doesn't work?

I tried both plain JS:

addEventListener("keydown", function (e) {
    if (e.keyCode === 13) {
        enter(e);
    }
});

function enter(e) {
    event.preventDefault();
    alert("You pressed enter");
}

and jQuery:

$(document).keypress(function(e) {
    if(event.which == 13) {
        event.preventDefault();
        alert('You pressed enter!');
    }
});

Also, I tried both event and e . Doesn't work. For another key, for example Backspace it works well.

That is a plugin for our corporate intranet - when you click some letter in email inbox, and after that press Enter , small pop-up window must be shown. But for some reason Enter is ignored in my script - instead of showing pop-up, webpage immediately opens the letter (that is a default behavior).

As I understand, the reason may be in another listener somewhere in webmail interface? Or not? If yes, may I somehow impart higher priority for handling Enter (so, before opening the letter, pop-up will be shown)?

Apologize for long description.

It should work as long as you bind the event handler within the document.ready

$(function(){

    $(document).keypress(function(e) {

       if(event.which == 13) {
          event.preventDefault();
          alert('You pressed enter!');
       }
   });

});

Here is a working sample

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM