JavaScript KeyCode vs CharCode
Das problem:
- Zulässigen Zeichen in einem HTML-input a-z A-z nur.
- Für business-Anforderungen, das getan werden muss, um auf Tastendruck, so dass der Charakter einfach nicht erlaubt, auch erscheinen in der Eingabe.
- Tab, enter, Pfeil, Rücktaste, shift sind alle erlaubt. Der Benutzer muss in der Lage sein, sich frei zu bewegen in und aus der textbox, löschen von Zeichen, usw. usw.
Dies ist der Ausgangspunkt von meinem code...
var keyCode = (e.keyCode ? e.keyCode : e.which);
Jedoch jedem Wert, den ich in keyCode nicht entsprechen alle der Charakter-charts, die ich gesehen habe im web. Zum Beispiel das Zeichen "h" gibt mir ein return-code von 104.
KeyCode anders CharCode? Die code enthält die control-Zeichen? Muss ich konvertieren?
Wie kann ich einschränken, um den input a-z a-Z und erlauben die Tasten die ich brauche in JavaScript?
InformationsquelleAutor der Frage Remotec | 2010-11-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Antworten auf alle Ihre Fragen finden Sie auf auf der folgenden Seite.
...aber in der Zusammenfassung:
keypress
Veranstaltung.keypress
Veranstaltung, die alle Browser außer IE <= 8 speichern der Zeichen-code in das Ereigniswhich
Eigenschaft. Die meisten, aber nicht alle dieser Browser auch speichern der Zeichen-code in dercharCode
Eigenschaft.keypress
Ereignis, IE <= 8 speichert die Zeichen-code in derkeyCode
Eigenschaft.Diese Mittel, um den Zeichen-code entsprechend dem Tastendruck werden die folgenden arbeiten überall, vorausgesetzt, ein keypress-Ereignis-Objekt ist gespeichert in einer variable namens
e
:Dies wird in der Regel kehren Sie ein Zeichen-code, wo man existiert und 0 sonst. Es gibt einige Fälle, wo Sie einen nicht-null-Wert wenn Sie nicht:
Die Abhilfe für das erste problem ist ein wenig beteiligt, und erfordert die Verwendung der
keydown
Ereignis.InformationsquelleAutor der Antwort Tim Down
Gute Trauer. KeyboardEvent.[key, char, keyCode, charCode, die] sind alle veraltet oder haben derzeit ausstehenden Fehler laut Mozilla die API-docs - https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent. Auch JQuery geht der Bock auf diese ein und ermöglicht dem Nutzer, es herauszufinden,https://api.jquery.com/keydown/.
InformationsquelleAutor der Antwort nicopolyptic
Eigentlich, 104 ist der ASCII-code für "Kleinbuchstaben " h". Um den ASCII-code für das eingegebene Zeichen onkeypress, können Sie einfach
e.which || e.keyCode
und Sie brauchen nicht zu kümmern, statt nach unten-Tasten, da für getippten text Tastenanschlag auto-wiederholt sich in allen Browsern (nach der hervorragenden http://unixpapa.com/js/key.html).Also alles, was Sie wirklich brauchen, ist:
Probieren Sie es aus: http://jsfiddle.net/wcDCJ/1/
(Die ASCII-codes sind http://en.wikipedia.org/wiki/Ascii)
InformationsquelleAutor der Antwort Han Seoul-Oh
onKeyPress hat unterschiedliche codes für groß-und Kleinbuchstaben. Sie würden wahrscheinlich feststellen, dass das drehen auf der cap-lock und dann mit der Eingabe der Buchstaben würde, geben Sie den code, den Sie erwarten
onKeyUp und onKeyDown haben den gleichen Charakter-codes für die oberen und Kleinbuchstaben. Es würde empfehlen, mit onKeyUp, weil es die am nächsten onKeyPress
InformationsquelleAutor der Antwort James Long
/*
Sie gewann ' T erhalten einen Schlüsselcode, der auf Tastendruck für nicht-Druck-Tasten,
warum Sie nicht erfassen, Sie auf keydown-Ereignis statt?
*/
kc> 64 && kc<91 //a-zA-Z
xtrakeys['k'+integer]) definiert spezielle Tastencodes erlaubt
InformationsquelleAutor der Antwort kennebec
Hier ist ein Beispiel-markup:
Die folgende Logik verwendet werden kann, um eine Falle für Tastatur-Eingaben (in diesem Fall über eine jQuery document ready-wrapper).
Kann es Lesen ein wenig doof, aber im Grunde, ich checke alles, was ich zulassen möchten (in Ihrem Fall die Buchstaben A bis Z in groß-und Kleinschreibung) und nichts tun. In anderen Worten, die Standard-Aktion ist erlaubt, aber jegliche Eingabe von anderen als alpha verhindert wird.
Standard, Tastatur-navigation, wie Sie Pfeiltasten, Home, End, Tab, Backspace, Löschen und so weiter sind geprüft und zugelassen.
HINWEIS: Dieser code wurde ursprünglich geschrieben, um zu befriedigen, die Benutzereingaben erlauben nur alphanumerische Werte (A - Z, A - z, 0 - 9), und ich verließ die Linien intakt als Kommentare.
InformationsquelleAutor der Antwort Mac
Ich denke, keyCode liefert den ASCII-Schlüssel-Wert, Ascii-104 h.
http://www.asciitable.com/
Charcode ist, wie schon in einer anderen Antwort eine alternative, die in manchen Browsern.
Hier ist ein Artikel mit einem crssbrowser Beispiel: http://santrajan.blogspot.com/2007/03/cross-browser-keyboard-handler.html
InformationsquelleAutor der Antwort David Mårtensson
Ich denke du nimmst den falschen Ansatz. Wie wäre es mit etwas wie:
Auch, vergessen Sie nicht, wiederholen Sie die Prüfung server-Seite auch.
InformationsquelleAutor der Antwort jqeryandjavascriptarenotthesam