Comment attraper événement.mot de code et de le modifier pour un autre mot de code?
J'ai vérifié les autres questions ici, cependant, ils ne répondent pas à ma question. Je veux simplement détecter un certain mot de code et de le remplacer par un autre. Je travaille avec des personnages, pas des espaces blancs, et je n'ai pas besoin de perdre le focus ou similaire.
Ci-dessous mon code. Mais vous pouvez remplacer ces codes clavier avec votre (eg. lorsque le capital "A" est pressé, il doit la remplacer avec zéro 0, etc.). L'idée est de remplacer le mot de code.
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;
}
}
});
J'ai essayé avec keydown et keyup. Ils ne modifient pas le mot de code. Comment puis-je le faire?
P. S. Si possible, je suis à la recherche d'une solution qui n'est pas "de l'événement.preventDefault() et insérez manuellement souhaité clé du champ de saisie, puis déplacez le curseur jusqu'à la fin". Je veux plus propre et la "bonne" solution. Merci.
OriginalL'auteur Eye | 2012-01-08
Vous devez vous connecter pour publier un commentaire.
Événement de clavier propriétés sont en LECTURE seule. Vous ne pouvez pas capturer un mot de code et de le modifier à l'autre.
Voir la référence du MDN - Les Événements De Clavier - Tous sont en lecture seule ne peuvent pas être ensemble.
Comme vous l'avez mentionné dans votre post. -- Si vous wan pas à gérer, alors vous devez vous arrêter navigateur par défaut de la touche et régler la valeur souhaitée de l'élément de vous-même.
Juste quelque chose qui pourrait vous aider. Une liste que j'ai posté sur jquery forums de "qui" les codes. Pourrait être utile pour toi. si non, pourrait être utile à quelqu'un d'autre qui vient par ici. forum.jquery.com/topic/eventwhich-code-list-just-for-help
OriginalL'auteur Selvakumar Arumugam
J'utilise le code suivant pour obtenir le même résultat que si j'avais changé la
keyCode
, sans en être réellement en mesure de le changer.srcField.selectionStart
donne la position de départ du texte que vous avez sélectionné etsrcField.selectionEnd
donne la position de fin de la sélection, si vous n'avez pas choisi n'importe quel textesrcField.selectionStart
est égal àsrcField.selectionEnd
.La fonction
setCaretPosition
est venu de cette réponse par la rd7. J'ai seulement changé pour le faire recevoir l'élément au lieu de l'Id de laOriginalL'auteur MauricioJuanes
Tandis que les propriétés sur le KeyboardEvent instance est en LECTURE SEULE, vous pouvez remplacer
KeyboardEvent
'de prototype et de créer un getter pour tout ce que vous voulez changer. Voici un exemple qui change les codes de touches de hjkl à agir comme des touches fléchées.OriginalL'auteur Sean256