หมายเหตุ: รหัสผ่านการทดสอบในโครงการจริง ฉันได้ข้ามส่วนที่ไม่สำคัญบางส่วนไป
เล้าโลม:
คำถาม: ทำไมคุณถึงทำเช่นนี้? -
คำตอบ: มีฟังก์ชั่นในโครงการที่จะบันทึกข้อความช่องข้อความที่ป้อนลงในฐานข้อมูล 'เมื่อดู' รับข้อมูลที่เกี่ยวข้องจากฐานข้อมูลและแสดงในช่องข้อความ ในระหว่างการพัฒนา ฉันพบว่าได้รับอักขระขึ้นบรรทัดใหม่โดยใช้ val() หรือ text() ของ jquery โดยไม่ต้องประมวลผล ไม่มีอักขระขึ้นบรรทัดใหม่ในฐานข้อมูลที่บันทึกไว้ โดยธรรมชาติแล้วจะไม่มีการขึ้นบรรทัดใหม่เมื่อถูกนำออกและแสดง! เลยเขียนบทความต่อไปนี้... ละเอียดไปหน่อย!
คัดลอกรหัสรหัสดังต่อไปนี้:
<%@ หน้า contentType="text/html;charset=UTF-8" %>
<script type="text/javascript">
// การประมวลผลการตัดบรรทัดฟิลด์ข้อความ
// ในระหว่างการเริ่มต้น ให้ประมวลผลข้อมูลที่ส่งคืนจากพื้นหลังและแทนที่ @@@@ ด้วยอักขระขึ้นบรรทัดใหม่ /n/r
$(เอกสาร).ready(function(){
var content = 'ค่าที่ได้รับจากพื้นหลัง';
ถ้า (เนื้อหา !='' ){
//การทดแทนระดับโลก
เนื้อหา = content.replace(/@@@@/g,'/n/r');
$("#content").attr("value",เนื้อหา);
-
-
// แทนที่อักขระขึ้นบรรทัดใหม่ /n/r ด้วย @@@@ เมื่อส่งและบันทึก
ฟังก์ชั่น doSubmit() {
var content = $("#content").val().replace(//n/g,"@@@@");
ถ้า (เนื้อหา == null || เนื้อหา = = ""){
alert("กรุณากรอกหมายเหตุ!");
กลับ;
-
$("#updateForm").attr("method","get");
$("#updateForm").attr("action", url);
$("#updateForm").ส่ง();
-
</สคริปต์>
<div>
<div>
<div>
<div><p><font face="สคริปต์ภาษาจีนปกติ" size="10">แผนการสัมภาษณ์</font></p>
</div>
<div>
<div> แผน<br><hr></div>
<div>
หมายเหตุ:
<div>
<textarea id="content" rows="15" cols="50"></textarea>
</div>
</div>
</div>
<div>
<a id="submit_btn" onclick="doSubmit();">บันทึก</a>
</div>
<form id="updateForm" method="get">
</แบบฟอร์ม>
</div>
</div>
</div>