Frage

OK, ich brauche meinen Code, um zu überprüfen, ob minus/subtrahieren/- gedrückt wurde, wenn er gedrückt wurde, möchte ich, dass ein Warnbox Pop ist. Ich habe es mit beiden versucht 109 und 189 Schlüsselcodes, aber ich bekomme immer noch nicht das gewünschte Ergebnis. Obwohl ich drücke "-" Ich verstehe diese Alarmbox nicht

War es hilfreich?

Lösung

Das JavaScript Charcodes, für die Sie während eines Schlüsselpressereignisses testen, sind ASCII. 109 ist der richtige Schlüsselcode, wenn in einem Schlüsseldown- oder Schlüsselereignis verwendet.

"-" hat ein Charcode von 45.

Andere Tipps

Tu das nicht in a keydown Ereignishandler - Sie werden sich den Vorstellungen verschiedener Browser über Schlüsselcodes und mögliche Variationen zwischen den Schlüsselcodes für verschiedene Tastaturtypen ausgeliefert. Mach es in a keypress Ereignis und dann können Sie stattdessen den Zeichencode erhalten, was Sie tatsächlich wollen.

document.onkeypress = function(evt) {
    evt = evt || window.event;
    var charCode = evt.which || evt.keyCode;
    var charStr = String.fromCharCode(charCode);
    if (charStr == "-") {
        alert("Minus!");
    }
};

Alle Informationen, die Sie jemals über JavaScript -Schlüsselereignisse benötigen könnten: http://unixpapa.com/js/key.html

1.Event.keycode = 109 ist '-' auf Numpad

2.Event.keycode = 189 Is'- 'in Alphabate Keybord-Schlüssel auf Chrome

3.Event.keyCode = 173 IS '-' In Alphabate Keybord Key on Firefox & on Chrome 173 Keycord ist stumm auf | Off

Sie können KeyCodes auf diese Weise entdecken:

Posten Sie einen Code. Das funktioniert für mich:

document.onkeydown = function (e) {
    if (e.keyCode === 109 || e.keyCode === 189) {
        alert('minus sign pressed');
    }
};

Vollständige Liste der Schlüsselcodes hier: http://www.cambiaresearch.com/c4/702b8cd1-e5b0-42e6-83ac-25f0306e3e25/javascript-char-char-codes-ycodes.aspx

Ich hoffe, dies funktioniert für Sie, es erkennt Benutzer gedrückte Schlüssel. Wenn es das ist, das Sie suchen, zeigt Sie die Warnung an, können Sie die tatsächliche Taste auf eine andere Taste ändern.

function detectSubstract(e)
{
var evtobj=window.event? event : e //distinguish between IE's explicit event object (window.event) and Firefox's implicit.
var unicode=evtobj.charCode? evtobj.charCode : evtobj.keyCode
var actualkey=String.fromCharCode(unicode)

    if (actualkey=="-")
    {
        alert('You pressed the minus key')
    }
}
document.onkeypress=detectSubstract

Die Leute bewegten sich von weg von event.keyCode und event.charCode Aufgrund inkonsistenter Implementierungen in den Browsern. Verwenden Sie stattdessen event.code. Das ist ein string aufstellen.

Die meisten Browser unterstützen Array.includes, Also neige ich dazu, Folgendes zu tun:

if (['-', 'Minus', 'NumpadSubtract'].includes(e.code)) {
    // do something
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top