Domanda

Quando si utilizza il codice di esempio dalla documentazione jQuery per il gestore di eventi keypress, io sono in grado di catturare il tasto Elimina. Il frammento di seguito sta per accedere 0 quando si preme il tasto Delete in FireFox:

$(document).keypress(function(e) {
    console.log(e.which);       
});

Sembra ci deve essere un modo per catturare l' tasto Elimina, ma è un termine ambiguo in modo Google non sta dimostrando di essere molto di aiuto con esso.

È stato utile?

Soluzione

Si consiglia di non utilizzare l'evento keypress, ma l'evento keyup o keydown perché l'evento keypress è destinato a personaggi reali (stampabili). keydown è gestita ad un livello inferiore in modo che catturerà tutti i tasti non stampabili come Elimina e Invio .

Altri suggerimenti

$('html').keyup(function(e){
    if(e.keyCode == 46) {
        alert('Delete key released');
    }
});

Fonte: javascript codici char codici chiave da www.cambiaresearch.com

I codici chiave JavaScript

  • e.keyCode == 8 per backspace
  • e.keyCode == 46 per backspace avanti o Elimina pulsante del PC

A parte questo dettaglio risposta di Colin & Tod sta lavorando.

event.key === "Elimina"

più recente e molto più pulito: utilizzare event.key. Non più arbitraria codici numerici!

document.addEventListener('keydown', function(event) {
    const key = event.key; // const {key} = event; ES6+
    if (key === "Delete") {
        // Do things
    }
});

Mozilla Docs

Browser supportati

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top