Я редактирую <textarea>
с помощью JavaScript. Проблема в том, что когда я делаю разрывы строк, они не отображаются. Как я могу это сделать?
Я получаю значение, чтобы написать функцию, но она не даст разрывов строк.
Я редактирую <textarea>
с помощью JavaScript. Проблема в том, что когда я делаю разрывы строк, они не отображаются. Как я могу это сделать?
Я получаю значение, чтобы написать функцию, но она не даст разрывов строк.
Проблема возникает из-за того, что разрывы строк (\n\r
?) не совпадают с тегами HTML <br/>
var text = document.forms[0].txt.value;
text = text.replace(/\r?\n/g, '<br />');
если вы используете общий java script, и вам нужно назначить строку для значения текстовой области, а затем
document.getElementById("textareaid").value='texthere\\\ntexttext'.
вам нужно заменить \n
или < br >
на \\\n
иначе он дает Uncaught SyntaxError: Unexpected token ILLEGAL
для всех браузеров.
Вам нужно использовать \n
для linebreaks
внутри textarea
Возможно, кому-то это будет полезно:
У меня была проблема с разрывами строк, которые были переданы от переменной сервера к переменной javascript, а затем javascript записывал их в textarea (используя привязки значений knockout.js).
решение удвоилось с новыми строками:
orginal.Replace("\r\n", "\\r\\n")
на стороне сервера, потому что с помощью только одного escape-кода javascript не разбирался.
Новая строка - это просто пробел в браузере и не будет обрабатываться ничем иным, как обычным пространством (""). Чтобы получить новую строку, вы должны вставить элементы <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>
У меня есть 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 />');
Надеюсь, это помогло вам.: -)
Если вам просто нужно отправить значение testarea на сервер с разрывами строк, используйте nl2br
вот что я сделал для той же проблемы, что и у меня.
когда я передаю текст на следующую страницу в 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>