2013. 10. 23.

HTML textarea value 출력 시 개행 문제.

textarea의 value 값을 데이터베이스에 저장해 놓고, 필요한 곳에 출력해야 한다.
허나, 어떻게 입력을 해도 한줄로 출력된다.

textarea에 입력할때 엔터를 치면 당장 눈에 보이는 개행은 된다.
\n 이 녀석이 들어가는 것. 헌데 그럼 왜 뿌려줄때는 한줄로 나온단 말인가!

브라우저에서 HTML에서 개행은 \n로 되지 않는다. 소스보기를 하면 아마 개행 잘 되있을 것이다.
<br/>이나 다른 개행 태그가 사용 되야 된다.

<form name="cf" onsubmit="return replaceBR();" >
   <textarea id="c"></textarea>
</form>

submit 될때 함수를 호출해서 \n값을 <br/>로 바꿔 주는 방법을 써보자.

function replaceBR(){   
   document.cf.c.value = document.cf.c.value.replace( /\n/gi, '<br//>'); 
   return true; 
}

replace() 함수는 일치하는 문자열을 바꿔 주긴 주는데, 첫 번째 일치하는 녀석만 바꿔준다.
바꾸고 싶은 문자열을 / / 로 감싸고 뒤에 gi를 붙여 주는 것으로 전체를 바꿀 수 있다.

나처럼 "/\n/gi"따옴표로 묶어 놓고, 안된다고 빡치는 시간 낭비 하지 말자.
묶어버리면 그냥 문자열 덩어리일 뿐이다.

아, 함수내에 br태그 슬래시 2개다. 코드 하일라이터에서 개행이 되버려서리...

댓글 없음 :

댓글 쓰기