2012-10-15 12 views
12

テキストファイルに複数のテキストエリアの値を保存するコードがあります。ただし、保存した後に指定した改行は表示されません。 w/cがテキストエリア内に手動で置かれた改行のみを識別します。以下はコードです。助けてください。javascript |改行でテキストエリアの値を保存する

<script> 
    var TestVar = new Array(); 
    var i = 0; 
    function save() 
    { 
     TestVar[i] = document.getElementById("text1").value + "\n" + document.getElementById("text2").value; 
     mydoc = document.open(); 
     mydoc.write(TestVar); 
     mydoc.execCommand("saveAs",true,"TicketID.txt"); 
     mydoc.close(); 
    } 
</script> 
</head> 
<body> 
    <form id=formtest> 
     <textarea name="textarea" id="text1"></textarea> 
     <textarea name="textarea" id="text2"></textarea> 
     <input type="button" value="save" onclick="save()"> 
    </form> 
</body> 

+0

このデータを保存するサーバー側のコードは何ですか? – MaVRoSCy

+1

PHPであれば、テキストボックスのデータをテーブルに保存するときに "nl2br" PHP関数を使うことを検討する必要があります。後でテーブル内の任意の "
"を次のように変換することができます:str_replace( "
"、 "\ n"、$ textboxValue); –

+0

こんにちは。サーバーサイドスクリプトを使用していないのは、ファイルをローカルにのみ保存するためです。 –

答えて

10

問題は、改行(\n)はHTML <br />タグと同じではないという事実から生じます。

これを試してみてください:

var text = document.forms[0].txt.value; 
text = text.replace(/\n\r?/g, '<br />'); 

編集、JSとしてこれを試してみてください。

var text = document.forms[0].txt.value; 

if (text === true) { text = text.replace(/\n\r?/g, '<br />'); } 

var TestVar = new Array(i); 
var i = 0; 
function save() 
{ 
TestVar[i] = document.getElementById("text1").value + "/n" + document.getElementById("text2").value; 
mydoc = document.open(); 
mydoc.write(TestVar); 
mydoc.execCommand("saveAs",true,"TicketID.txt"); 
mydoc.close(); 
} 
+0

それを試して、それは私に以下のエラーを与える。ウェブページエラーの詳細 メッセージ:4 チャー:1 コード:0 –

+0

ウェブページのエラーメッセージを詳細:「document.forms.0.txt」は「document.forms.0.txt」はオブジェクト ラインNULLかどうかでありますnullまたはオブジェクトではない行:4文字:1コード:0 –

+0

ifに入れてみてください、私の新しい回答をお読みください – lifetimes

14
text = text.replace(/\n\r?/g, '<br />'); 

テキストはテキストエリアからの値です。

関連する問題