Salut, je cherche a entourer une phrase sélectionner dans un champ de formualire, un peu comme un bbcode et pour cela j'ai un champ textarea

Code : Sélectionner tout - Visualiser dans une fenêtre à part
<textarea name="textarea" rows="3" cols="50"></textarea>
Ainsi qu'un bouton

Code : Sélectionner tout - Visualiser dans une fenêtre à part
<INPUT TYPE="BUTTON" ID="I_BTN43" NAME="I_BTN41" VALUE="TEST" title="Mets des balises ** devant et après la phrase sélectionné" onclick="Fct_Btn43(value)" >
Et un code javascript qui me permet de faire ce que je veut

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
function Insert_Tag( where_, tagdeb_, tagfin_){
  var Obj = document.getElementById( where_);
  if( Obj){
    Obj.focus();
    if(typeof Obj.selectionStart != 'undefined'){
      //-- Position du curseur
      var PosDeb = Obj.selectionStart;
      var PosFin = Obj.selectionEnd;
      //-- Recup. des Chaines
      var Chaine  = Obj.value;
      var szAvant = Chaine.substring( 0 , PosDeb);
      var szApres = Chaine.substring( PosFin, Obj.textLength );
      //-- Recup. texte selectionne
      var szSelect = Chaine.substring( PosDeb, PosFin);
      //-- Insertion des tags
      Obj.value = szAvant + tagdeb_ + szSelect + tagfin_ + szApres;
      //-- Replace le curseur
      PosDeb = szAvant.length + tagdeb_.length +szSelect.length;
      PosFin = PosDeb;
      Obj.setSelectionRange(  PosDeb, PosFin);
      //-- Replace le Focus
      Obj.focus();
    }
    else{ // IE and consort
      var Decal;
      //-- Recup. de la selection
      var Chaine   = document.selection.createRange();
      var szSelect = Chaine.text;
      Chaine.text  = tagdeb_ + szSelect + tagfin_;
      Chaine = document.selection.createRange();
      //-- Replace le curseur avant balise fin
      if( szSelect.length > 0){
        //-- Le curseur est en debut de chaine
        Decal = tagdeb_.length + szSelect.length;
        //-(*)- Supprime les retours Chariot
        Decal -= Get_NbrCR( szSelect);
      }
      else{
        //-- Le curseur est en fin de chaine
        Decal = -tagfin_.length;
      }
      //-- Deplace le curseur
      Chaine.move('character', Decal);
      Chaine.collapse();
      Chaine.select();
    }
  }
}
//-----------------------
 
 
function Fct_Btn43(value){
  var szTag ="";
  szTag = document.getElementById('I_BTN43').value;
  Insert_Tag('message', "["+ value +"]", "["+ value +"]");
}
Tous fonctionne pour ce que je veux faire ! Mais j'ai tout de même deux problèmes


  1. Lorsque j'ai dépasser le nombre de ligne visible dans le champ de formulaire par exemple 5 lignes et que je fait appel au bouton après avoir sélectionner le dernier mot, le curseur revient tout en haut du champ alors que je souhaiterai qu'il reste en bas
  2. Je souhaiterai que le bouton ai le nom TEST et que lorsque je clic dessus c'est [**] qui apparait, par exemple si je sélectionne le mot essai dans l'état actuel le script générera [TEST]essai[TEST] et je voudrai [**]essai[**]

Voila j'espère avoir été assez explicite et merci par avance