Je voudrais avoir un élément d'entrée (type = text) ou un élément textarea qui valide dynamiquement en déclenchant des frappes spécifiques. Cela sera utilisé pour l'entrée pinyin chinois, par exemple:Déclenchez une pression sur une touche avec jQuery ... et spécifiez quelle touche a été pressée
L'utilisateur tape "ma2" dans un élément d'entrée. L'événement keydown se déclenche à chaque frappe, et le 2 n'apparaît jamais. Au lieu de cela, lorsque l'utilisateur appuie sur "2", le "a" recevra une marque de ton, comme ceci: "á". A la fin, l'utilisateur aura tapé: "má". Ceci peut être accompli en lisant et en changeant toute la valeur d'entrée en utilisant $ (element) .val() cependant, quand un élément d'entrée a le focus et sa valeur est définie en appelant .val ("quelque chose"), le curseur se déplace à la fin du texte. Cela fonctionne très bien dans la plupart des situations, car un utilisateur continue à taper à la fin du champ, mais je veux que cela fonctionne dans toutes les situations.
... une autre solution à ce problème serait d'obtenir/définir l'emplacement d'un curseur dans un élément d'entrée ou de textarea. Je ne pense pas que cela soit possible en javascript, cependant.
Donc, Remy était sur la bonne voie à coup sûr. Déclencher des touches ne me permettrait pas d'entrer des caractères spéciaux sans beaucoup de tracas de toute façon. Au lieu de cela, j'attrape l'événement keydown et définissez la valeur de l'entrée/textarea, puis déplacez le curseur.
Je n'ai pas trouvé quelque chose de bon pour obtenir/régler dans jQuery, mais ce qui suit a vraiment brisé ce problème pour moi. Je posterai un lien vers mon code d'entrée final pinyin quand il sera stable. C'est assez proche maintenant.
http://blog.vishalon.net/Post/57.aspx http://demo.vishalon.net/getset.htm