Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как вставить текст с переводом строк? (https://javascript.ru/forum/jquery/20858-kak-vstavit-tekst-s-perevodom-strok.html)

Serg_pnz 20.08.2011 08:32

Как вставить текст с переводом строк?
 
$('#log').html('text text
text text');

не работает

walik 20.08.2011 10:00

Многострочная переменная в javascript


var txt = "text text \n text text";
alert(txt);

melky 20.08.2011 11:28

a = " это очень,*!*\*/!*
 очень длинная строка"

alert(a)

NeoMurderer 21.08.2011 18:10

А может просто <br/> поставить?

tadjik1 23.08.2011 12:51

я бы тоже через <br /> код html вставлял.

Serg_pnz 23.08.2011 15:18

Не-а, не работает.
Это нужно для формы обратной связи, что бы не отправляли "Войну и мир" в textarea. Обрезать текст до 1000 знаков не вопрос, а вот обновить поле не получается
$txt = nl2br("dfvdfvdf
dfvdfv
dfvdfv");
$txt = preg_replace('/\n|\r/sui', '',$txt);
echo '<script>$(\'#ftxt\').val(\''.$txt.'\');</script>';


Вставляет
dfvdfvdf<br />dfvdfv<br />dfvdfv

ваый 23.08.2011 15:32

Цитата:

Сообщение от Serg_pnz
Вставляет
dfvdfvdf<br />dfvdfv<br />dfvdfv

Ну естественно, ты же nl2br делаешь. После этого preg_replace('/\n|\r/sui', '',$txt) вообще не имеет смысла. nl2br не нужен, если ты вставляешь назад в textarea.

Serg_pnz 23.08.2011 16:38

Так если не делать этого, то отдается с переводом строк в консоль и не вставляется!

Вот сабж, только я рецепт никак не догоню.. http://forum.vingrad.ru/forum/topic-326152.html

ваый 23.08.2011 17:09

Чисти строку, как тебе надо, просто не вырезай переносы строк и все будет ок. Например:
<textarea id="txt" style="width: 500px; height: 110px;">This is some dirty appempt to make a 
script
injection <script>alert('hello')</script>
boom!
(note new lines)
</textarea>
<br>
<button onclick="clean()">Test</button>

<script>
function clean() {
    var el = document.getElementById('txt');
    var text = el.value;
    el.value = stripTags(text);
}

function stripTags(str) {
    return str.replace(/<\w+(\s+("[^"]*"|'[^']*'|[^>])+)?>|<\/\w+>/gi, '');
}
</script>

Serg_pnz 24.08.2011 10:23

уфффф... разобрался

//$tmp[0][0] - это после обрезки, в общем исходный текст с переносами
$txt = nl2br($tmp[0][0]); //для вставки в тело письма
$txt2 = urlencode($tmp[0][0]); //кодируем 
$mess .= '$(\'#ftxt\').val(decodeURIComponent(\''.$txt2.'\'));';  //вывод с декодированием (сам вывод чуть ниже)


Пример работы http://kro002.jcase.ru/index-5.html
введите в textarea больше 20 символов, не заполняя другие поля нажмите "Отправить".


Часовой пояс GMT +3, время: 13:39.