JavaScript subtrahieren Sie (-) Schlüsselcode
-
19-09-2019 - |
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
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
}