Como adicionar quebras de linha a um textarea HTML?
-
21-08-2019 - |
Pergunta
Estou editando um <textarea>
com JavaScript. O problema é que quando eu faço quebras de linha na mesma, eles não serão exibidos. Como posso fazer isso?
Eu estou recebendo o valor para escrever uma função, mas não vai dar quebras de linha.
Solução
O problema vem do fato de que as quebras de linha (\n\r
?) Não são os mesmos como HTML <br/>
etiquetas
var text = document.forms[0].txt.value;
text = text.replace(/\r?\n/g, '<br />');
Outras dicas
Se você usar o script geral java e você precisa corda atribuir ao valor de área de texto, em seguida,
document.getElementById("textareaid").value='texthere\\\ntexttext'.
você precisa substituir \n
ou < br >
para \\\n
caso contrário ele dá Uncaught SyntaxError: Unexpected token ILLEGAL
em todos os navegadores.
Você precisa usar \n
para linebreaks
dentro textarea
Talvez alguém encontrar este útil:
Eu tive problema com quebras de linha que foram passados ??de variável servidor para variável javascript e, em seguida javascript estava escrevendo-os a textarea (usando ligações de valor knockout.js).
a solução foi duplo escapar novas linhas:
orginal.Replace("\r\n", "\\r\\n")
no lado do servidor, porque com apenas únicos caracteres de escape javascript não estava de análise.
Uma nova linha é apenas um espaço em branco para o navegador e não será tratado qualquer diferente de um espaço normal (" "). Para obter uma nova linha, você deve inserir elementos <BR />
.
Outra tentativa para resolver o problema: Digite o texto no textarea e, em seguida, adicione um pouco de JavaScript atrás de um botão para converter os personagens invisíveis para algo legível e despejar o resultado para um DIV
. Isso vai lhe dizer o que o seu browser quer.
Se você quiser texto de exibição dentro de sua própria página, você pode usar a tag <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>
Eu tenho uma textarea com ID é #infoartist seguir:
<textarea id="infoartist" ng-show="dForm" style="width: 100%;" placeholder="Tell your contacts and collectors about yourself."></textarea>
No código javascript, eu vou obter o valor de textarea e substituir escapar nova linha (\ n \ r) pela tag <br />
, tais como:
var text = document.getElementById("infoartist").value;
text = text.replace(/\r?\n/g, '<br />');
Então, se você estiver usando jQuery (como eu):
var text = $("#infoartist").val();
text = text.replace(/\r?\n/g, '<br />');
Hope lhe ajudou. : -)
Se você só precisa enviar o valor da testarea ao servidor com quebras de linha usar nl2br
aqui é a coisa que eu fiz para o mesmo problema que eu tive.
quando eu estou passando o texto para a próxima página em jsp, eu estou lendo-o como um textarea em vez de ler algo como
para que a saída veio como você queria. e para outras propriedades, você pode usar como abaixo.
<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>