наша форма с кнопками и текстом
<form action="" method="POST">
<button type="button" onclick="wrapText('edit','[list]','[/list]');">LI</button>
<button type="button" onclick="wrapText('edit','[ol=1]','[/ol]');">OL</button><br>
<textarea id="edit" name="message" rows="10" cols="50">
This is some example text.
This is some example text.
This is some example text.
This is some example text.
</textarea>
</form>
и функция обертки
<script>
function wrapText(elementID, openTag, closeTag) {
var textArea = document.getElementById(elementID);
if (typeof(textArea.selectionStart) != "undefined") {
var begin = textArea.value.substr(0, textArea.selectionStart);
var selection = textArea.value.substr(textArea.selectionStart, textArea.selectionEnd - textArea.selectionStart);
var end = textArea.value.substr(textArea.selectionEnd);
var stringArray = selection.split('\n');
for (var i = 0; i < stringArray.length; i++) {
stringArray[i] = '[*] '+stringArray[i];
}
selection = stringArray.join('\n');
//console.log(selection);
textArea.value = begin + openTag + '\n' + selection + '\n' + closeTag + end;
}
}
</script>
пример работы тут

