Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > обрамление тэгами текста в textarea


Автор: zFermer 22.9.2011, 14:51
есть функция успешно выполняющая необходимую функцию:

Код

function wrapText(elementID, openTag, closeTag){
    var textArea = $(elementID);
    var len = textArea.val().length;
    var start = textArea[0].selectionStart;
    var end = textArea[0].selectionEnd;
    var selectedText = textArea.val().substring(start, end);
    var replacement = openTag + selectedText + closeTag;
    textArea.val(textArea.val().substring(0, start) + replacement + textArea.val().substring(end, len));
}


есть одно НО, обрамляеться тэгами текст в первой строчке нормально, во всех же последующих строчках обрамление идет строго со сдвигом на столько символов на сколько строк предшествует текущей строки в которой происходит обрамление.

чем можно вылечить?

Автор: magelan 30.9.2011, 11:07
Убрал бред, проблемы не вижу, все работает...

Код

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
var wrapText = function( elementID, openTag, closeTag )
{
    var tarea = document.getElementById( elementID );
    var val = tarea.value;
    var s = tarea.selectionStart;
    var e = tarea.selectionEnd;
    tarea.value = val.substring( 0, s ) + openTag + val.substring( s, e ) + closeTag + val.substring( e, val.length );
}
</script>
</head>
<body>
<form>
<textarea id="zz" rows=7>
</textarea>
</form>
<a href="javascript:void(0);" onclick="wrapText('zz','[a]','[/a]')" >tag a</a>
<a href="javascript:void(0);" onclick="wrapText('zz','','')" >tag b</a>
</body>
</html>

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)