2010-07-03 11 views
6

Ho una textarea per gli utenti ai commenti di ingresso e un pulsante per inviare utilizzando jQuery .post() e JSON:Come faccio a ottenere la mia textarea per preservare le newline quando si usano jQuery e JSON?

$('#submit').click(function() { 
    var comment = {}; 
    comment.Author = $("#author").val(); 
    comment.Email = $("#email").val(); 
    comment.WebSite = $("#url").val(); 
    comment.Body = $("#comment").val(); // textarea 

    $.post('/ajax/comments', comment, parseComment, 'json'); 

Ma $("#comment").val() non sembra conservare a capo (l'ingresso sta perdendo a capo). Come faccio a far funzionare questo?

risposta

5

Un'area di testo non inserisce i tag <br> in un input dell'utente per interruzioni di riga, piuttosto include semplicemente il carattere di nuova riga \n.

Questo snippet mostrerà una casella di avviso quando si fa clic sul pulsante, che ha la linea spezzata.

<script type="text/javascript"> 
    $(document).ready(function(){ 
    $('#submit').click(function() { alert($('#comment').val()); }) 
    }); 
</script> 

<textarea id='comment'></textarea> 
<input type='submit' id='submit'/> 

Se è necessario visualizzare questi nella pagina html, è necessario sostituire il \n con <br> te stesso.

2

Sta perdendo nuove linee? Vedi forse this post?

1

utilizzare $('#comment').val().replace(/\n/g, '<br \\>');.

1

Hai solo bisogno di utilizzare encodeURIComponent sul valore del textarea e inviarlo al server..when di stamparlo out..you può usare nl2br se PHP per esempio