webentwicklung-frage-antwort-db.com.de

jQuery: Kommen Sie gefiltert, wenn Sie eine Taste drücken?

Sie können eine Cercare ohne Sono Sicuro di Quali Termini Cercare bestellen.

Wenn Sie eine Frage stellen und den gewünschten Wert eingeben, erhalten Sie eine Bestätigung und eine Bestätigung, die nicht stempelfähig ist.Enter,ESCtasti frecciabackspace,tab,ctrl,insert,F1-F12dall'avvio Dell'evento.

Sind Sie ein Modo Semplice per Determinare Se E Stampabile?

37
twig

La risposta selezionata per questa domanda non è completa. Non gestisce il caso in cui un tasto carattere viene premuto in Kombination mit tasto modificatore (ad es.CTRL-A).

Prova, ad esempio, ein DigitareCTRL-Ausando firefox con il seguente codice. La risposta attuale lo considererà come un personaggio:

HTML:

<input placeholder="Try typing CTRL-A in Firefox" style="width: 200px"/>

JavaScript:

$("input").keypress(function (e) {
    if (e.which !== 0) {
        alert(String.fromCharCode(e.which));
    }
});

http://jsfiddle.net/4jx7v/

Hinweis: Es wird kein allgemeiner und verwendbarer Browser (in Chrome) angezeigt, und es wird kein Ereignis für den Geschmack einer Eingabe ohne Berechtigung angezeigt.

Una soluzione migliore potrebbe essere:

HTML:

<input placeholder="Try typing CTRL-A in Firefox" style="width: 200px"/>

JavaScript:

$("input").keypress(function (e) {
    if (e.which !== 0 &&
        !e.ctrlKey && !e.metaKey && !e.altKey
    ) {
        alert(String.fromCharCode(e.which));
    }
});

http://jsfiddle.net/hY5f4/

In questo caso, l'avviso viene attivato solo quandoAEs ist premuto, nichtCTRL-Aper tutti i browser.

27
Daniel
<script>
    $("input").keypress(function (e) {
        if (e.which !== 0 &&
            !e.ctrlKey && !e.metaKey && !e.altKey) {
            alert(String.fromCharCode(e.which));
        }
    });
</script>

Scheint mit jQuery 1.4.2, FF, IE, Chrome gut zu funktionieren.

Informationen zum Umgang mit JS-Tastaturereignissen finden Sie unter: JavaScript Madness: Keyboard Events


Aktualisiert, um die Tastenkombinationen Strg, Meta und Alt nach Daniels Kommentar zu filtern.

27
Andras Vass

Die Suche nach Tastenkombinationen ist nicht in allen Fällen die beste Lösung. Wenn Sie beispielsweise Tastenkombinationen zur Eingabe eines Zeichens verwenden, wird das Ereignis onkeypress blockiert, wenn dies nicht der Fall ist.

Versuchen Sie das hier und Sie werden feststellen, dass es nicht funktioniert: http://jsfiddle.net/4jx7v/

(Auf einem Mac versuchen Sie Alt + einen Buchstaben und unter Windows Alt + eine Reihe von numerischen Tasten.)

Eine Alternative dazu wäre, einfach zu prüfen, ob sich der Eingabewert vom vorherigen Wert geändert hat. Auf diese Weise wissen Sie sicher, dass etwas eingegeben wurde.

JavaScript:

var previousValue;
$("input").keypress(function (e) {
    if (previousValue != $(this).val()) {
        alert('Something has been typed.');
    }
});
0
Marian