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.

Foi útil?

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>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top