Как добавить разрывы строк в текстовую область HTML?

Я редактирую <textarea> с помощью JavaScript. Проблема в том, что когда я делаю разрывы строк, они не отображаются. Как я могу это сделать?

Я получаю значение, чтобы написать функцию, но она не даст разрывов строк.

Ответ 1

Проблема возникает из-за того, что разрывы строк (\n\r?) не совпадают с тегами HTML <br/>

var text = document.forms[0].txt.value;
text = text.replace(/\r?\n/g, '<br />');

Ответ 2

если вы используете общий java script, и вам нужно назначить строку для значения текстовой области, а затем

 document.getElementById("textareaid").value='texthere\\\ntexttext'.

вам нужно заменить \n или < br > на \\\n

иначе он дает Uncaught SyntaxError: Unexpected token ILLEGAL для всех браузеров.

Ответ 3

Вам нужно использовать \n для linebreaks внутри textarea

Ответ 4

Возможно, кому-то это будет полезно:

У меня была проблема с разрывами строк, которые были переданы от переменной сервера к переменной javascript, а затем javascript записывал их в textarea (используя привязки значений knockout.js).

решение удвоилось с новыми строками:

orginal.Replace("\r\n", "\\r\\n")

на стороне сервера, потому что с помощью только одного escape-кода javascript не разбирался.

Ответ 5

Новая строка - это просто пробел в браузере и не будет обрабатываться ничем иным, как обычным пространством (""). Чтобы получить новую строку, вы должны вставить элементы <BR />.

Еще одна попытка решить проблему: введите текст в текстовое поле, а затем добавьте JavaScript за кнопкой, чтобы преобразовать невидимые символы в нечто читаемое и вывести результат в DIV. Это скажет вам, что ваш браузер хочет.

Ответ 6

Если вы хотите отображать текст на своей странице, вы можете использовать тег <pre>.

document.querySelector('textarea').addEventListener('keyup', function() {
  document.querySelector('pre').innerText = this.value;
});
<textarea placeholder="type text here"></textarea>
<pre>
The
new line will
be respected
</pre>

Ответ 7

У меня есть textarea с id #infoartist:

<textarea id="infoartist" ng-show="dForm" style="width: 100%;" placeholder="Tell your contacts and collectors about yourself."></textarea>

В javascript-коде я получаю значение textarea и заменяю escaping новую строку (\n\r) тегом <br />, например:

var text = document.getElementById("infoartist").value;
text = text.replace(/\r?\n/g, '<br />');

Итак, если вы используете jquery (например, я):

var text = $("#infoartist").val();
text = text.replace(/\r?\n/g, '<br />');

Надеюсь, это помогло вам.: -)

Ответ 8

Если вам просто нужно отправить значение testarea на сервер с разрывами строк, используйте nl2br

Ответ 9

вот что я сделал для той же проблемы, что и у меня.

когда я передаю текст на следующую страницу в jsp, я читаю его как текстовое поле вместо того, чтобы читать что-то вроде

чтобы выход был таким, каким вы хотели. и для других свойств вы можете использовать, как показано ниже.

<textarea style="background-color: white; border: none; width:660px;font-family: Arial, Helvetica, sans-serif; font-size:1.0em; resize:none;" name="text" cols="75" rows="15" readonly="readonly" ><s:property value="%{text}"/></textarea>