Wie catch-Veranstaltung.keyCode und ändern Sie es zu einem anderen Gutscheincode?
Ich habe andere Fragen, die hier bei SO, Sie stellen jedoch keine Antwort auf meine Frage. Ich will einfach nur fangen bestimmter Schlüsselcode ein, und ersetzen Sie es mit einem anderen. Ich arbeite mit Zeichen, keine Leerzeichen, und ich brauche nicht zu verlieren, konzentrieren oder ähnliches.
Unten ist mein code. Aber Sie können die diejenigen ersetzen, die keyCodes mit Ihr (zB. in dem Kapital "A" gedrückt wird, sollte es ersetzen durch 0, etc.). Die Idee ist, ersetzen Sie den keyCode.
phrase.keypress(function(event)
{
if (event.shiftKey)
{
switch (event.keyCode)
{
//Cyrillic capitalized "Н" was pressed
case 1053: event.keyCode = 1187; event.charCode = 1187; event.which = 1187; break;
//Cyrillic capitalized "О" was pressed
case 1054: event.keyCode = 1257; event.charCode = 1257; event.which = 1257; break;
//Cyrillic capitalized "У" was pressed
case 1059: event.keyCode = 1199; event.charCode = 1199; event.which = 1199; break;
}
}
});
Versuchte ich mit der keydown-und keyup-als auch. Sie ändern nicht den keyCode. Wie kann ich das tun?
P. S. Wenn möglich, ich bin auf der Suche nach einer Lösung, die nicht "Ereignis.preventDefault() und manuell legen Sie die gewünschte Taste, um die Eingabe-Feld, bewegen Sie dann den cursor an das Ende". Ich möchte den Reiniger und die "richtige" Lösung. Danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Tastatur-Ereignis-Eigenschaften sind alle schreibgeschützt. Sie können capture one Schlüsselcode ein, und ändern Sie es zu einem anderen.
Siehe Referenz aus MDN - Tastatur-Ereignisse - Alle können nur gelesen werden kann nicht eingestellt werden.
Als Sie erwähnt in Ihrem Beitrag. -- Wenn Sie wan ' T zu behandeln, dann musst du halt den browser default-Taste drücken und gewünschten Wert einstellen, um das element selbst.
Ich bin mit dem folgenden code, um das gleiche Ergebnis erzielen, wie wenn ich mich verändert hatte die
keyCode
, ohne tatsächlich in der Lage, es zu ändern.srcField.selectionStart
gibt die Startposition des Textes, den Sie ausgewählt haben, undsrcField.selectionEnd
gibt die Endposition der Auswahl, wenn Sie noch nicht ausgewählt haben, die eine text -srcField.selectionStart
gleichsrcField.selectionEnd
.Die Funktion
setCaretPosition
kam aus diese Antwort durch kd7. Ich nur geändert, um es zu empfangen das element, statt seiner IdWährend die Eigenschaften des KeyboardEvent-Instanz schreibgeschützt ist, können Sie überschreiben
KeyboardEvent
's Prototyp und erstellen Sie eine get-Methode für was auch immer Sie ändern möchten. Hier ein Beispiel, welche Veränderungen die keycodes der Tasten hjkl zu handeln, wie die Pfeiltasten.