Bouton qui ajoute du texte

m1bs
Invité n'ayant pas de compte PHPfrance

29 oct. 2005, 11:24

Voilà en fait j'aimerai faire quelque chose de simple avec un bouton

Comme lorsque on poste sur ce forum un bouton qui ajouterait du texte en direct lorsque on clique dessus, ou qui met en gras le texte sélectionné, donc qui ajoute 2 balises<b> et </b> au extrémités

dans la page de ce site on peut voir ceci par exemple

Code : Tout sélectionner

<td><span class="genmed"> <input class="button" accesskey="b" name="addbbcode0" value=" B " style="font-weight: bold; width: 30px;" onclick="bbstyle(0)" onmouseover="helpline('b')" type="button"> </span></td>
on peut le faire d'une autre manière ?

Mammouth du PHP | 568 Messages

29 oct. 2005, 11:31

Tu l'auras remarqué, ce que tu demandes ici est de faire réagir ton navigateur à un évènement. Donc ton soucis est un problème de Javascript (Ton post devrait être déplacé par un modo :wink: )

Après réflexion, peut-être que ça a sa place... Que veux tu modifier comme texte en cliquant sur ton bouton ? Un texte présent dans un input texte, ou du texte directement écris dans la page ?

Si c'est le second cas, ton post est à la bonne place, mais comme les réponses sont plus ou moins différentes, il faudrait mieux ciblé ce que tu veux faire exactement...
Heddi s'est remis à développer pour lui même !
Martina Hingis - Étoile du Tennis
Heddi v. 2007

Eléphant du PHP | 337 Messages

29 oct. 2005, 15:56

Pour ce javascript, je te conseille vivement cette fonction :
function AddText(startTag,defaultText,endTag) 
{
  with(document.form_ajouter)
  {
    if (texte.createTextRange) 
    {
      var text;
      texte.focus(texte.caretPos);
      texte.caretPos = document.selection.createRange().duplicate();
      if(texte.caretPos.text.length>0)
      {
        // Un double-clic sélectionne le mot
        // + un espace qu'on ne souhaite pas forcément...
        var sel = texte.caretPos.text;
        var fin = '';
        while(sel.substring(sel.length-1, sel.length)==' ')
        {
          sel = sel.substring(0, sel.length-1)
          fin += ' ';
        }
      texte.caretPos.text = startTag + sel + endTag + fin;
      }
      else texte.caretPos.text = startTag + defaultText + endTag;
    }
    else texte.value += startTag + defaultText + endTag;
  }
}
Puis, pour le placer dans ton textarea (par exemple) :
<input type='button'  value='Gras' onClick="AddText('<b>','','</b>');">
Elle fonctionne à merveille ! (dans cet exemple, le formulaire dans lequel j'utilise cette fonction s'appelle form_ajouter)