Trigger-ein-Tastendruck-mit jQuery...und angeben, welche Taste gedrückt wurde

Ich würde gerne eine Eingabe-element (type=text) oder textarea-element, das überprüft, dynamisch durch das auslösen bestimmter Tastatureingaben. Diese wird verwendet für die chinesischen pinyin Eingang, so zum Beispiel:

Den Benutzer-Typen "ma2" in ein input-element. Das keydown-Ereignis löst bei jedem Tastendruck, und die 2 nie angezeigt. Stattdessen, wenn der Benutzer drückt "2" "a" erhalten ein Ton daneben, wie hier: "á". Am Ende, den der Benutzer eingegeben hat: "má".

Dies kann erreicht werden durch Lesen und ändern der gesamten input-Wert mit $(element).val() jedoch, wenn ein input-element den Fokus hat und die es Wert ist sich durch den Aufruf .val("etwas"), bewegt sich der cursor an das Ende des Textes. Dies funktioniert gut in den meisten Situationen, weil ein Benutzer nur weiterhin die Eingabe am Ende des Feldes, aber ich möchte diese Arbeit in alle Situationen.

...eine andere Lösung für dieses problem wäre die zu bekommen/setzt die Position der cursor in einem input-oder textarea-element. Ich glaube nicht, dass dies möglich ist, in javascript, aber.


So, Remy auf dem richtigen Weg war sicher. Auslösung Tastendrücke nicht erlauben würde, mich zur Eingabe von Sonderzeichen, ohne viel Aufwand sowieso. Stattdessen Fang ich das keydown-Ereignis und setzen Sie den Wert des input - /textarea-Komponente und anschließend verschieben der Einfügemarke.

Ich habe nicht gefunden was gut für das caret-Zeichen zu setzen in jQuery, aber das folgende wirklich brach, dass problem für mich. Ich werde einen link zu meinem letzten pinyin input-code, wenn es stabil. Es ist ziemlich nah jetzt.

http://blog.vishalon.net/Post/57.aspx
http://demo.vishalon.net/getset.htm

InformationsquelleAutor user27948 | 2008-10-14

Schreibe einen Kommentar