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

StackOverflow https://stackoverflow.com/questions/863779

Вопрос

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

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

Это было полезно?

Решение

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

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

Другие советы

если вы используете общий Java-скрипт и вам нужно присвоить строку значению текстовой области, тогда

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

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

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

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

Возможно, кому-то это окажется полезным:

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

решением было двойное экранирование новых строк:

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

на стороне сервера, потому что Javascript не анализировался только с одним escape-символом.

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

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

Если вы хотите отображать текст внутри своей страницы, вы можете использовать <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>

У меня есть текстовое поле с идентификатором #infoartist следовать:

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

В коде JavaScript я получу значение текстовой области и заменю экранирующую новую строку ( ) на <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 />');

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

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

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

когда я передаю текст на следующую страницу в 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>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top