web-dev-qa-db-fra.com

Lier la touche entrée à un bouton spécifique de la page

<input type="button" id="save_post" class="button" value="Post" style="cursor:pointer;"/>

Comment lier la touche Entrée du clavier à ce bouton spécifique sur la page? Ce n'est pas dans un formulaire, et je ne le veux pas non plus.

Merci!

24
slandau

Cela cliquera sur le bouton peu importe où se trouve "Enter" sur la page:

$(document).keypress(function(e){
    if (e.which == 13){
        $("#save_post").click();
    }
});
37
Chris Laplante

en utilisant jQuery:

$('body').on('keypress', 'input', function(args) {
    if (args.keyCode == 13) {
        $("#save_post").click();
        return false;
    }
});

Ou pour lier des entrées spécifiques à différents boutons, vous pouvez utiliser des sélecteurs

$('body').on('keypress', '#MyInputId', function(args) {
    if (args.keyCode == 13) {
        $('#MyButtonId').click();
        return false;
    }
});
11
Parham

Si vous voulez utiliser du javascript pur:

document.onkeydown = function (e) {
  e = e || window.event;
  switch (e.which || e.keyCode) {
        case 13 : //Your Code Here (13 is ascii code for 'ENTER')
            break;
  }
}
9
Abhishek Hingorani

Version Vanilla JS avec auditeur:

window.addEventListener('keyup', function(event) {
  if (event.keyCode === 13) {
    alert('enter was pressed!');
  }
});

N'oubliez pas non plus de supprimer l'événement listener , si ce code est partagé entre les pages.

0
Alexander Kim