Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.08.2011, 08:32
Аватар для Serg_pnz
Сам по себе
Отправить личное сообщение для Serg_pnz Посмотреть профиль Найти все сообщения от Serg_pnz
 
Регистрация: 09.06.2009
Сообщений: 963

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

не работает
Ответить с цитированием
  #2 (permalink)  
Старый 20.08.2011, 10:00
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

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


var txt = "text text \n text text";
alert(txt);
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Ответить с цитированием
  #3 (permalink)  
Старый 20.08.2011, 11:28
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

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

alert(a)
Ответить с цитированием
  #4 (permalink)  
Старый 21.08.2011, 18:10
Аспирант
Отправить личное сообщение для NeoMurderer Посмотреть профиль Найти все сообщения от NeoMurderer
 
Регистрация: 16.02.2011
Сообщений: 98

А может просто <br/> поставить?
Ответить с цитированием
  #5 (permalink)  
Старый 23.08.2011, 12:51
Профессор
Отправить личное сообщение для tadjik1 Посмотреть профиль Найти все сообщения от tadjik1
 
Регистрация: 07.06.2011
Сообщений: 315

я бы тоже через <br /> код html вставлял.
Ответить с цитированием
  #6 (permalink)  
Старый 23.08.2011, 15:18
Аватар для Serg_pnz
Сам по себе
Отправить личное сообщение для Serg_pnz Посмотреть профиль Найти все сообщения от Serg_pnz
 
Регистрация: 09.06.2009
Сообщений: 963

Не-а, не работает.
Это нужно для формы обратной связи, что бы не отправляли "Войну и мир" в 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
Ответить с цитированием
  #7 (permalink)  
Старый 23.08.2011, 15:32
Профессор
Отправить личное сообщение для ваый Посмотреть профиль Найти все сообщения от ваый
 
Регистрация: 29.06.2011
Сообщений: 445

Сообщение от Serg_pnz
Вставляет
dfvdfvdf<br />dfvdfv<br />dfvdfv
Ну естественно, ты же nl2br делаешь. После этого preg_replace('/\n|\r/sui', '',$txt) вообще не имеет смысла. nl2br не нужен, если ты вставляешь назад в textarea.
Ответить с цитированием
  #8 (permalink)  
Старый 23.08.2011, 16:38
Аватар для Serg_pnz
Сам по себе
Отправить личное сообщение для Serg_pnz Посмотреть профиль Найти все сообщения от Serg_pnz
 
Регистрация: 09.06.2009
Сообщений: 963

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

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

Последний раз редактировалось Serg_pnz, 23.08.2011 в 16:40. Причина: upd
Ответить с цитированием
  #9 (permalink)  
Старый 23.08.2011, 17:09
Профессор
Отправить личное сообщение для ваый Посмотреть профиль Найти все сообщения от ваый
 
Регистрация: 29.06.2011
Сообщений: 445

Чисти строку, как тебе надо, просто не вырезай переносы строк и все будет ок. Например:
<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>
Ответить с цитированием
  #10 (permalink)  
Старый 24.08.2011, 10:23
Аватар для Serg_pnz
Сам по себе
Отправить личное сообщение для Serg_pnz Посмотреть профиль Найти все сообщения от Serg_pnz
 
Регистрация: 09.06.2009
Сообщений: 963

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

//$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 символов, не заполняя другие поля нажмите "Отправить".
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите как отобразить текст. potkin Общие вопросы Javascript 17 26.10.2017 15:09
При клике ссылки, открыть DIV блок, и при клике ещё раз, закрыть его Simon Общие вопросы Javascript 59 28.05.2017 17:31
Вопрос: И опять про offsetLeft... sigurd Общие вопросы Javascript 11 04.10.2010 14:06
Вопрос по относительному позиционированию DIV XPOMOB (X)HTML/CSS 11 15.07.2009 17:02
Как распознать текст? monach79 Общие вопросы Javascript 12 21.07.2008 13:22