Ajouter du texte a la position du curseur dans un textarea

Soyez le premier à donner votre avis sur cette source.

Snippet vu 35 418 fois - Téléchargée 26 fois

Contenu du snippet

Code compatible avec IE et kelkes bugs:
exemple d'une page:

Source / Exemple :


<HTML>
<HEAD>
<TITLE>Insert</TITLE>
<SCRIPT LANGUAGE="JavaScript">
function storeCaret (textEl)
{
if (textEl.createTextRange) 
textEl.caretPos = document.selection.createRange().duplicate();
}
function insertAtCaret (textEl, text)
{
if (textEl.createTextRange && textEl.caretPos)
{
var caretPos = textEl.caretPos;
caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text;
}
else
textEl.value  = text;
}
</SCRIPT>
</HEAD>
<BODY>
<FORM>
<textarea rows="5" name="zonetexte" cols="20"ONSELECT="storeCaret(this);"ONCLICK="storeCaret(this);"ONKEYUP="storeCaret(this);"> C'est le début du texte.</textarea>
<INPUT TYPE="button" STYLE="font-family:courier;" VALUE="Ajouter"
ONCLICK="insertAtCaret(this.form.zonetexte,'LE TEXTE');">
</FORM>
</BODY>
</HTML>

Conclusion :


Code demandé sur le forum de l'editeur javascript

A voir également

Ajouter un commentaire

Commentaires

Messages postés
2
Date d'inscription
samedi 29 avril 2006
Statut
Membre
Dernière intervention
29 avril 2006

Comment faire quand il y a plusieurs champs dans le formulaire ?
COmment récupérer le nom du champ où se trouve le curseur ?

Merci
Messages postés
2
Date d'inscription
samedi 29 avril 2006
Statut
Membre
Dernière intervention
29 avril 2006

Ca marche bien quand on n'a qu'un seul champ dans le formulaire.
Je voudrais savoir comment on fait quand il y plusieurs champs dans le même formulaire.

Marci pour votre aide.
Messages postés
875
Date d'inscription
samedi 17 mai 2003
Statut
Membre
Dernière intervention
22 juin 2012

Tu aurais pu enlever les event sur le texte area:
textEl.focus();
var caretPos = document.selection.createRange().duplicate();
caretPos.text = le_text;
Et pour firefox:
var texteDeb= textEl.value.substring( 0 , textEl.selectionEnd );
var texteEnd= textEl.value.substring( textEl.selectionEnd , textEl.textLength );
textEl.value= texteDeb + " " + le_text + " " + texteEnd;

...

Have fun
Messages postés
1
Date d'inscription
vendredi 30 mai 2003
Statut
Membre
Dernière intervention
23 janvier 2004

C'est génial pour mon site, mais comme tu l'as si bien dit, il ne marche que sous IE, il n'y a pas moyen de le faire fonctionner sous Mozilla ; Netscape?
Messages postés
10
Date d'inscription
mercredi 3 juillet 2002
Statut
Membre
Dernière intervention
30 janvier 2005

Tu peux toujours rechercher sur le net les "UBB codes" et t'inspirer de leur programmation.
Afficher les 7 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.