Comment pouvez-vous déplacer le curseur sur la dernière position d'un textarea en Javascript?
J'ai un textarea et un bouton sur un formulaire. Le textarea peut déjà avoir un texte. Je voudrais déplacer le curseur à la dernière position dans la zone de texte lorsque le bouton est cliqué.
Est-ce possible?
Vous devez vous connecter pour publier un commentaire.
Par “la dernière position”, vous voulez dire la fin du texte?
Changeant le".valeur d'un champ de formulaire, déplace le curseur à la fin dans tous les navigateurs sauf IE. Avec IE, vous devez obtenir vos mains sales et délibérément manipuler la sélection, à l'aide de non-interfaces standards:
Ou voulez-vous dire de mettre le curseur à l'endroit où il était auparavant, la dernière fois que le textarea a été porté?
Dans tous les navigateurs sauf IE, ce sera déjà arriver juste en appelant ‘élément.focus()’; le navigateur se souvient de la dernière curseur/la position de la sélection par entrée et il met l'accent sur.
Ce serait assez difficile à reproduire dans IE. Vous auriez à interroger tout le temps de vérifier où se trouve le curseur de sélection, a été, et n'oubliez pas cette position si elle était dans un élément d'entrée, de récupérer la position d'un élément donné lorsque le bouton a été pressé et le restaurer. Cela implique une certaine vraiment assez fastidieux de manipulation de document.sélection.createRange()’.
Je ne suis pas au courant de quoi que ce soit dans jQuery qui pourraient vous aider à faire cela, mais il pourrait y avoir un plugin, quelque part, peut-être?
xgMz réponse était le mieux pour moi. Vous n'avez pas besoin de s'inquiéter à propos du navigateur:
Et voici une rapide extension jQuery que j'ai écrit pour ce faire, pour moi la prochaine fois:
Utiliser comme ceci:
Vous pouvez également le faire:
Ce code fonctionne pour les deux
input
ettextarea
. Testé avec les dernières versions des navigateurs Firefox 23, IE 11 et Chrome 28.jsFiddle
disponible ici: http://jsfiddle.net/cG9gN/1/Source: https://stackoverflow.com/a/12654402/114029
Vous pouvez utiliser cette https://github.com/DrPheltRight/jquery-caret
C'est ce que j'utilise ces zones de texte à l'intérieur de mon onclick ou d'autres événements et semble bien fonctionner pour FireFox et IE 7 & 8. Il positionne le curseur à la fin du texte, au lieu de l'avant.
Pour définir focus de la souris et déplacer le curseur à la fin de l'entrée. Son travail dans chaque navigateur, Sa logique est toute simple ici.
J'ai modifié @mkaj extension un peu à l'appui de la valeur par défaut