2011-03-23 1 views
2

다음은 jQuery 코드가 수행하는 작업입니다.

 $('.newCommentBox form').live('submit', function() { 

    //Submit the form post 
    $.post($(this).attr('action'), $(this).serialize(), function (data) { showNewComment(data) }); 

    return false; 
}); 

양식을 제출할 때마다 결과를 가져 와서 직렬화하고 POST를 통해 특정 작업으로 전송합니다. 서버에서 응답을 받으면 showNewComment 함수를 호출하여 실시간으로 추가되는 주석을 표시합니다.

여기 내 문제가 있습니다 : 사람들이 주석에 남겨 두는 공백을 보존하여 더 긴 주석의 가독성을 제어 할 수 있어야합니다. 주석을 렌더링 할 때 CRLF 줄 바꿈을 .NET Html 도우미 메서드를 사용하여 변환하지만 양식이 jQuery를 통해 제출되고 JSON을 통해 직렬화 될 때 모든 줄 끝은 유지되지 않습니다. 반면 AJAX없이이 작업을 수행하면 그것은 잘 작동했습니다.

어떻게이 줄 끝을 보존 할 수 있습니까? 아니면 jQuery가 CRLF 줄 끝을 대체 했습니까?

답변

1

아약스를 사용하여 브라우저 및 환경에 따라 줄 바꿈이 \ r \ n 및 \ n으로 게시되는 것을 보았습니다. 일반적으로 \ n을 확인하고 <br />으로 바꾸는 것이 가장 안전한 방법입니다. C#에서 예를 들어

:

"Hello\nWorld".Replace("\n", "<br />"); 
or 
"Hello\r\nWorld".Replace("\n", "<br />"); 
+0

감사를 보존 linespacing : D – Aaronontheweb

1

대안은 당신의 출력 스타일을 위해 CSS 공백 속성을 사용하는 것입니다.

<div style="white-space: pre;"> 
    Hello 
World 
</div> 

Hello 
World 

로 렌더링되어야하고 속임수를 썼는지 그,

더 많은 정보를 원하시면 http://www.w3.org/TR/CSS2/text.html#white-space-prop를 참조

관련 문제