注: 実際のプロジェクトではコードはテストに合格しましたが、重要でない部分は省略されています。色でマークされた部分に注目してください。
前戯:
質問: なぜこれを行うのですか? ?
回答: プロジェクトには、入力されたテキスト フィールドのテキストをデータベースに保存する機能があります。 「閲覧時」はデータベースから該当するデータを取得し、テキストフィールドに表示します。開発中に、改行文字を加工せずにjqueryのval()やtext()で取得していることが分かりました 保存したデータベースには改行文字がありません 当然、取り出して表示すると改行文字はありません。結果、こんな記事を書きました…ちょっとくどいです!
次のようにコードをコピーします。
<%@ ページ contentType="text/html;charset=UTF-8" %>
<script type="text/javascript">
// テキストフィールドの行折り返し処理
// 初期化中に、バックグラウンドから返されたデータを処理し、@@@@ を改行文字 /n/r に置き換えます。
$(ドキュメント).ready(function(){
var content = 'バックグラウンドから取得した値';
if(コンテンツ !='' ){
//グローバル置換
content = content.replace(/@@@@/g,'/n/r');
$("#content").attr("value",content);
}
});
// 送信して保存するときに改行文字 /n/r を @@@@ に置き換えます
関数 doSubmit() {
var content = $("#content").val().replace(//n/g,"@@@@");
if(content == null || content==""){
alert("備考欄にご記入ください!");
戻る;
}
$("#updateForm").attr("メソッド","get");
$("#updateForm").attr("アクション", url);
$("#updateForm").submit();
}
</script>
<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" メソッド="get">
</form>
</div>
</div>
</div>