Page 1 sur 1

Bouton qui ajoute du texte

Posté : 29 oct. 2005, 11:24
par m1bs
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 ?

Posté : 29 oct. 2005, 11:31
par heddicmi
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...

Posté : 29 oct. 2005, 15:56
par finipe
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)