Je me demande comment insérer du texte dans une zone de texte à l'aide de jquery, en cliquant sur une balise d'ancrage.
Je ne veux pas remplacer le texte déjà dans textarea, je veux ajouter un nouveau texte à textarea.
jquery
formatting
textarea
Oliver Stubley
la source
la source
Réponses:
D'après ce que vous avez dans les commentaires de Jason, essayez:
Modifier - Pour ajouter au texte, regardez ci-dessous
la source
J'aime l'extension de la fonction jQuery. Cependant, cela fait référence à l'objet jQuery et non à l'objet DOM. Je l'ai donc modifié un peu pour le rendre encore meilleur (peut être mis à jour dans plusieurs zones de texte / zones de texte à la fois).
Cela fonctionne vraiment bien. Vous pouvez insérer à plusieurs endroits à la fois, comme:
la source
sel
censé être mondial?J'utilise cette fonction dans mon code:
Ce n'est pas à 100% le mien, je l'ai recherché quelque part sur Google, puis je l'ai réglé pour mon application.
Usage:
$('#element').insertAtCaret('text');
la source
Je sais que c'est une vieille question, mais pour les personnes qui recherchent cette solution, il convient de noter que vous ne devez pas utiliser append () pour ajouter du contenu à une zone de texte. la méthode append () cible innerHTML et non la valeur de la zone de texte. Le contenu peut apparaître dans la zone de texte mais il ne sera pas ajouté à la valeur de forme de l'élément.
Comme indiqué ci-dessus en utilisant:
fonctionnera très bien.
la source
celui-ci vous permet "d'injecter" un morceau de texte dans la zone de texte, injecter signifie: ajoute le texte à l'endroit où se trouve le curseur.
Et vous pouvez l'utiliser comme ceci:
Drôle et avoir plus de sens lorsque nous avons la fonctionnalité "Insérer une balise dans le texte".
fonctionne dans tous les navigateurs.
la source
.focus()
invocations et des mises à jour deselectionStart
etselectionEnd
après la modification. Des variables espagnoles peuvent avoir été utilisées pour justifier une autre réponse ...Hej c'est une version modifiée qui fonctionne bien dans FF @least pour moi et insère à la position des carets
la source
as-tu essayé:
pas sûr de la mise en évidence automatique, cependant.
MODIFIER :
À ajouter:
la source
append()
ne fonctionne pas sur la valeur d'untextarea
. Laappend()
méthode cible le innerHTML, pas la valeur de la zone de texte.Ce que vous demandez doit être raisonnablement simple dans jQuery-
La meilleure façon dont je peux penser à mettre en évidence le texte inséré est de l'envelopper dans une plage avec une classe CSS avec
background-color
la couleur de votre choix. Lors de l'insertion suivante, vous pouvez supprimer la classe de toutes les travées existantes (ou supprimer les travées).Cependant, il existe de nombreux éditeurs WYSIWYG HTML / Rich Text gratuits disponibles sur le marché, je suis sûr que l'un d'entre eux répondra à vos besoins.
la source
Voici une solution rapide qui fonctionne dans jQuery 1.9+:
a) Obtenez la position du curseur:
b) Ajouter du texte à la position du curseur:
c) Exemple
la source
Cela fonctionne bien pour moi dans Chrome 20.0.11
la source
Si vous souhaitez ajouter du contenu à la zone de texte sans les remplacer, vous pouvez essayer ce qui suit
Selon votre scénario, ce serait
la source
Je pense que ce serait mieux
la source
Une autre solution est également décrite ici au cas où certains des autres scripts ne fonctionneraient pas dans votre cas.
la source
Ceci est similaire à la réponse donnée par @panchicore avec un bug mineur corrigé.
la source
Une solution simple serait: ( Hypothèse : vous voulez que tout ce que vous tapez dans la zone de texte soit ajouté à ce qui est déjà là dans la zone de texte )
Dans l' événement onClick de la balise <a> , écrivez une fonction définie par l'utilisateur, ce qui fait ceci:
(où les ids, textId1 - pour o / p textArea textId2 -pour i / p textbox ')
la source
la source
J'ai utilisé ça et ça marche bien :)
Remi
la source