참고: 코드는 실제 프로젝트에서 테스트를 통과했습니다. 색상으로 표시된 부분에 집중할 수 있습니다.
전희:
질문: 왜 이런 일을 합니까? ?
답변: 프로젝트에는 입력한 텍스트 필드 텍스트를 데이터베이스에 저장하는 기능이 있습니다. '보는 경우'는 데이터베이스에서 해당 데이터를 가져와 텍스트 필드에 표시합니다. 개발 중에 jquery의 val() 또는 text()를 사용하여 개행 문자를 처리하지 않고 얻은 것을 발견했습니다. 당연히 저장된 데이터베이스에는 개행 문자가 없고 표시됩니다. 그 결과 다음과 같은 글을 쓰게 되었습니다... 좀 장황하네요!
다음과 같이 코드 코드를 복사합니다.
<%@ 페이지 contentType="text/html;charset=UTF-8" %>
<스크립트 유형="텍스트/자바스크립트">
// 텍스트 필드 줄 바꿈 처리
// 초기화 중에 백그라운드에서 반환된 데이터를 처리하고 @@@@을 개행 문자로 바꿉니다. /n/r
$(문서).ready(함수(){
var content = '백그라운드에서 얻은 값';
if(내용 !='' ){
//전역 교체
content = content.replace(/@@@@/g,'/n/r');
$("#content").attr("value",content);
}
});
// 제출하고 저장할 때 개행 문자 /n/r을 @@@@로 바꿉니다.
함수 doSubmit() {
var content = $("#content").val().replace(//n/g,"@@@@");
if(콘텐츠 == null || 콘텐츠==""){
Alert("비고사항을 입력해주세요!");
반품;
}
$("#updateForm").attr("method","get");
$("#updateForm").attr("action", url);
$("#updateForm").submit();
}
</script>
<div>
<div>
<div>
<div><p><fontface="중국 정규 스크립트" size="10">면접 계획</font></p>
</div>
<div>
<div> 계획<br><hr></div>
<div>
비고:
<div>
<textarea id="content"row="15" cols="50"></textarea>
</div>
</div>
</div>
<div>
<a id="submit_btn" onclick="doSubmit();">저장</a>
</div>
<form id="updateForm" 메서드="get">
</form>
</div>
</div>
</div>