2013-12-09 17 views
5

Quando si aggiunge una stringa, impostata in JavaScript, a un valore textarea, sembra che le interruzioni di riga siano corrette. Tuttavia, quando si acquisisce questa stringa da un attributo dati, sembra che lasci le interruzioni di riga come \ njQuery valore textarea non converte le interruzioni di riga

Entrambi hanno un tipo di stringa, quindi sono confuso su come funziona, ma non sull'altro.

Come posso prendere l'attributo di dati e fare in modo che le interruzioni di riga funzionino con un'area di testo?

<div id="test" data-message="this\ntest"></div> 
<textarea id="textarea"></textarea> 
<textarea id="textarea2"></textarea> 
var html = 'this\ntest'; 
var div = $('#test').data('message'); 

$('#textarea').val(html); 
$('#textarea2').val(div); 

JSFiddle Example

+0

sembra quando il valore letto dal attributo '\' è scampata usando '' \\, vedere la diff lunghezza tra 'html' e 'div' http://jsfiddle.net/arunpjohny/7q8RG/1/ –

risposta

7

È necessario utilizzare l'entità carattere HTML per interruzione di linea all'interno di una proprietà HTML: &#13;

<div id="test" data-message="this&#13;test"></div> 

Updated fiddle

+0

Che sciocco da parte mia. Grazie! – digitalclubb

+0

Nessun problema, felice di aiutare. –

3

quando lo si ottiene dalla dati attribuiscono il \n sta diventando sfuggito quindi è necessario sostituirlo:

$('#textarea2').val(div.replace("\\n","\n")); 

Example

+0

sostituzione globale: 'div.replace (/ \\ n/g," \ n ")' – Pete

Problemi correlati