연속된 \n 생략하는 방법 관련 입니다.. 채택완료
안녕하세요~
write.skin.php에서 라디오 및 텍스트 인풋 등으로 입력 받은 ex1, ex2_1, ex2_2, ex3 ~~ ex97 와 같은 필드들을
아래와 같이 function fwrite_submit(f) 안에서 wr_content 값에 넣어
본문에 자동으로 입력하고 있습니다.
function fwrite_submit(f) { // ### 아래의 함수로 wr_content에 여분필드의 값을 넣어 대체함 f.wr_content.value = f.wr_subject.value+'\n'+f.wr_name.value+'\n'+f.ex1.value+'\n'+f.ex2_1.value+'\n'+f.ex2_2.value+ ~중략~ +'\n'+f.ex100.value;
특별할 게 없기에 입력은 잘 됩니다.
문제는 랜덤으로 ex의 값 (wr_1에 배열로 넣은 값)이 없는 경우가 많은데
값이 없는 ex의 자리에 '\n'만 나오게 되기에
글쓰기 후 본문 내용을 보면 여기저기 연속된 엔터공백이 휑하니 발생하여
가독성이 너무 안좋아지게 됩니다...
## ex의 입력값이 없을 때 해당 ex 앞에 붙은 줄바꿈 \n을 생략하는 방법이 있을까요...? -_-;;;;;;
답변 2개
뭐 이런건 단순하게 가는게 방법일수도있겠네요
var ex_value = '';
if(f.ex1.value) ex_value += '\n'+f.ex1.value;
if(f.ex2.value) ex_value += '\n'+f.ex2.value;
if(f.ex3.value) ex_value += '\n'+f.ex3.value;
ex가 100까지 있는걸로보아 여기 조건을 for문돌려도 되겠구요
f.wr_content.value = f.wr_subject.value+'\n'+f.wr_name.value+ex_value;
그다음엔 이렇게 추가해주시면 되겠네요
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
</p>
<p>$ex_array = [f.ex1.value, f.ex2.value ... f.ex100.value];</p>
<p>// null 제거및 개행문자로 join</p>
<p>$except_string = join('\n', array_filter($ex_array));</p>
<p>f.wr_content.value = f.wr_subject.value+'\n'+f.wr_name.value+'\n'+$except_string</p>
<p>
$ex_array 부분은 $ex_array = array() 로 선언하고 for 문으로 대체 가능하겠네요
답변에 대한 댓글 2개
근데.. wr_content에 입력값이 들어가지 않는 것 같습니다.
(내용을 입력하세요 alert가 뜹니다..)
혹시 제일 마지막에 ; 빠진거 때문이면 확인해보세요
f.wr_content.value = f.wr_subject.value+'\n'+f.wr_name.value+'\n'+$except_string;
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
처음에 f.wr_content.value = f.wr_subject.value+'\n'+f.wr_name.value+ex_value; 뒤에다가 변수 부분을 적었다가 결과물에 undefined 오류가 났었는데
자세히 답변을 보니 변수 부분을 앞에 적으라는 말씀이셨더군요 ^^;;;;;;
다시 한번 감사드립니다~~♥