[JS][débutant] améliorer la fonction d'un bbcode sur les listes déroulantes
Salut à tous :) ,
J'ai fait un bbcode, et j'utilise entre autre cette fonction avec des listes déroulantes (pour la taille du texte). Or quand je sélectionne un texte que je lui applique une taille par exemple "très grand" ça fonctionne mais ensuite la liste déroulante garde par défaut ce que je vient de sélectionner c'est à dire la taille "très grand". Du coup quand ensuite je veut appliquer cette taille à nouveau, rien n'est inséré.
Que dois je faire pour que la liste déroulante revienne à sa valeur par défaut (ici "Taille du texte") ?
Voilà mon code html avec la liste déroulante
Code:
1 2 3 4 5 6 7 8 9 10
| <select name="taille_texte" class="taille_texte" onchange="javascript:bbcode('[taille=' + this.value + ']', '[/taille]','textarea')">
<option selected="selected">Taille du texte</option>
<option value="tres_petit">Très petit</option>
<option value="plus_petit">Plus petit</option>
<option value="petit">Petit</option>
<option value="normal">Normal</option>
<option value="grand">Grand</option>
<option value="plus_grand">Plus grand</option>
<option value="tres_grand">Très grand</option>
</select> |
voilà ma fonction javascript :
Code:
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 57
| function bbcode(text1,text2,champ)
{
var tag = document.getElementById(champ);
if(document.selection)
{ // IE
var str = document.selection.createRange().text;
tag.focus();
var sel = document.selection.createRange();
if(text2 != "")
{
if(str == "")
{
sel.text = sel.text + text1 + text2;
sel.moveStart("character", -text2.length);
sel.moveEnd("character", -text2.length);
sel.select();
}
else
sel.text = text1 + sel.text + text2;
}
else
sel.text = sel.text + text1;
}
else if(tag.selectionStart || tag.selectionStart == 0)
{ // Moz
if(tag.selectionEnd > tag.value.length)
tag.selectionEnd = tag.value.length;
var firstPos = tag.selectionStart;
var secondPos = tag.selectionEnd + text1.length;
var contenuScrollTop = tag.scrollTop;
tag.value = tag.value.slice(0,firstPos) + text1 + tag.value.slice(firstPos);
tag.value = tag.value.slice(0,secondPos) + text2 + tag.value.slice(secondPos);
tag.selectionStart = firstPos + text1.length;
tag.selectionEnd = secondPos;
tag.focus();
tag.scrollTop = contenuScrollTop;
}
else
{ // Opera
var sel = document.hop.contenu;
var inst = countInstances(text1,text2);
if(inst%2 != 0 && text2 != "")
sel.value = sel.value + text2;
else
sel.value = sel.value + text1;
}
} |
Merci d'avance pour votre aide !