2009-05-14 14 views

Odpowiedz

227

Problem wynika z faktu, że podziały wiersza (\n\r?) Nie są takie same jak HTML <br/> tagi

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

To działa również dla mnie. W jQuery możesz zrobić coś takiego: $ ('# caption'). Html ($ ('# caption'). Text(). Replace (/ \ n \ r?/G, '
')); – DavGarcia

+1

Podział wierszy Regexp powinien mieć postać '/ (\ r \ n | \ n | \ r)/gm' http://www.textfixer.com/tutorials/javascript-line-breaks.php – tothemario

+0

Jeśli używasz jQuery Proponuję użyć '.val' - http://stackoverflow.com/questions/5583040/show-newlines-in-html-textarea/5583094#5583094 –

8

Trzeba użyć \n dla linebreaks wewnątrz textarea

+0

To działa dla mnie, w Chrome przynajmniej w wersji 61. – Snorvarg

+0

Dzięki ... pracuje dla mnie też –

3

nowej linii, jest tylko białe znaki w przeglądarce i nie będzie traktowany inaczej do normalnej przestrzeni (”„). Aby uzyskać nową linię, należy wstawić elementy <BR />.

Kolejna próba rozwiązania problemu: Wpisz tekst w polu tekstowym, a następnie dodaj kod JavaScript za przyciskiem, aby przekształcić niewidoczne znaki w coś czytelnego i zrzuć wynik na numer DIV. Dzięki temu dowiesz się, czego chce Twoja przeglądarka.

20

jeśli używasz ogólny skrypt Java i trzeba przypisać ciąg tekstu wartość kierunkowy następnie

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

trzeba wymienić \n lub <br> do \\\n

w przeciwnym razie daje Uncaught SyntaxError: Unexpected token ILLEGAL we wszystkich przeglądarkach.

+0

nie działa w Firefoksie 38,0 – Randall

0

Jeśli wystarczy wysłać wartość testarea do serwera z przerwami liniowych wykorzystują nl2br

11

Może ktoś się on przydać:

miałem problem z przerwami liniowych, które upłynęły od zmiennej serwera do javascript zmienna, a następnie javascript zapisywał je do textarea (używając powiązań wartości knockout.js).

roztwór dwukrotnie ucieczce nowe linie:

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

po stronie serwera, ponieważ tylko z pojedynczych znaków ewakuacyjnych JavaScript nie został parsowania.

+0

używając „\\ n” u mnie działa w systemie Windows i zakładam to będzie działać poprawnie w systemach Linux. –

0

Oto, co zrobiłem dla tego samego problemu, jaki miałem.

kiedy jestem zdaniu tekstu do następnej strony JSP, czytam go jako textarea zamiast czytać coś

więc wyjście przyszedł jak chciałeś. i dla innych właściwości, możesz użyć jak poniżej.

<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> 
2

Mam textarea z id jest #infoartist obserwacji:

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

W kodu JavaScript Wezmę wartość textarea i zastąpić ucieczki nowej linii (\ n \ r) przez <br /> tag, takich jak:

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

więc jeśli używasz jQuery (jak ja):

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

Mam nadzieję, że ci pomogło. :-)

Powiązane problemy