• ベストアンサー

改行キーの判断

こんにちは教えてください。 あるフォームのテキストエリアに入力された値を他のページに渡す必要があります。 その時、テキストエリアに入力された値に含まれる改行キーも一緒に渡したいのですが、うまく行きません。 strUrl="mypage.php?Memo="+document.frmMypage.txtMemo.value 例えばこんな感じで渡しています。 できれば改行キーを"<br>"に変換して渡したいのですが・・・。 とりあえず、改行キーを判断する方法がJavaScriptにあるのかどうかだけでも教えていただけないでしょうか。 よろしくお願いいたします。 環境はWinNT4.0(SR6) IE5.0 (JavaScriptはIE4.0以上で動くことを予想しています)

質問者が選んだベストアンサー

  • ベストアンサー
  • leaz024
  • ベストアンサー率75% (398/526)
回答No.2

replace()を使えば、簡単に変換できます。 こんな↓コードで試してみたらどうでしょう。 <html> <head> <script language="javascript"> <!-- function movetx() {   with (document.frm) {     tx2.value = tx1.value.replace(/\r\n/g, '<br>');   } } //--> </script> </head> <body> <center> <form name="frm">  <textarea name="tx1" cols="40" rows="10"></textarea><br>  <input type="button" value="↓" onClick="movetx()"><br>  <textarea name="tx2" cols="40" rows="10"></textarea><br> </form> </center> </body> </html> 上のテキストエリアに改行入りの文章を書いてボタンを押すと、改行を<br>に変換して一行になった文字列が下のテキストエリアに表示されます。 #UNIXとかだと、改行って\nだったような・・・。あれ、Macはどうだっけ??

laa_laa_ts
質問者

お礼

ありがとうございます! 完璧です。ありがとうございました。 そのままパクれそうですが、今後の勉強のためにも 少しかみ砕いて自分のものにしたいと思います。 すごく助かりました。 japascriptでもreplaceができることがわかってうれしいです。 勉強になりました!! # OSによって改行コードが違うんですね。要調査です。

laa_laa_ts
質問者

補足

leaz024さん、すみません、今ポイントをつけようと思ったら、 leaz024さんが書いてくれたコードが実行されてしまい、 エラーが出て「締め切り」ボタンが押せなくなってしまっています。 教えてgooに聞いてみますので、ポイントはもう少々お待ちください。 すみません。

その他の回答 (1)

  • PPinky
  • ベストアンサー率0% (0/1)
回答No.1

unescape("%0D%0A")でよいかと思います。 テキストエリアに入っている文字列を1文字ずつ取得し、 改行コードを見つけたら"<br>"に置換すればよいんでしょうか? 下記URLは改行コードについて書かれてはいませんが、ご参考までに…。

参考URL:
http://www2s.biglobe.ne.jp/~tomoya_n/jscript/page07.htm
laa_laa_ts
質問者

お礼

回答ありがとうございます。 改行コードがわかっただけで大収穫でした。 あとは自分なりにコーディングできそうです。 ありがとうございました。

関連するQ&A

  • javascriptでCGIに値を渡したいのですが、テキストエリアの値で改行コードが消えてしまいます。教えて下さい。

    javascriptでCGIに値を渡したいのですが、テキストエリアの値で改行コードが消えてしまいます。教えて下さい。 別窓ページにてtest.cgiを呼び出し、そのCGIに値を渡したいのですが、 一応値はテキスト形式で渡せるのですが、テキストエリアで入力したものの 改行コードが消えてしまいます。何か良い方法があれば、教えて下さい。 <FORM name="test" ACTION="javascript:test_window_open('/cgi-bin/test.cgi?bikou='+document.test.bikou.value);"> : : <TEXTAREA rows="8" cols="50" name="bikou"></TEXTAREA>

  • 改行について

    フォームのテキストエリアに入力されたデータを PHPと連動してmySqlに格納したいと思っています。 テキストエリアから渡された文字列中に改行がある場合、 そのまま格納しても(サニタイズは当然するとして)問題ないでしょうか? それとも<BR>等に変換すべきでしょうか?

    • ベストアンサー
    • MySQL
  • テキストエディットで改行するのにreturn-keyで改行したものがタグを確認すると段落になってしまいます

    テキストエディットで日本語の文章を入力してhtmlで保存したものを開いてタグを確認すると、改行するのにreturn-keyを使って改行したものが<br>ではなく<p>になっています。段落になっているので行間が文章が長くて折り返し改行したものと合わなくなってしまうので<br>としたいのですが何か方法はないものでしょうか? その都度マウスを使って、編集>挿入>改行とする方法は分かったのですが、手間がかかり他の方法はないかと思ってます。改行のショートカットキーを作成する方法も考えシステム環境設定をいじってみましたが、上手く出来ませんでした。 一番いいのはreturn-keyで<br>となるのがいいとは思うのですがどなたか方法を教えて頂けないでしょうか?

    • ベストアンサー
    • Mac
  • 改行の削除

    現在入力したデータをデータベースに保存し、 そのデータをPHPで表示するようにしています。 入力する場所はテキストエリアで改行などを入れてるのですが、データベースでテキストエリアに表示するときに 下記のように<br />が入ってしまいます。 あ<br /> か<br /> さ そこで、下記のような処理を行ったのですが、やはり上記のような表示になってしまいます。 何かよい方法はありませんでしょうか? $tmpStr = str_replace("<br />", "", trim($tgtStr));

    • ベストアンサー
    • PHP
  • [javascript][IE] textarea内の改行を消す方法を教えてください。

    テキストエリア内の改行をreplaceで除去したいのですが、FireFoxではうまくいくのですがIEではうまく動作しません。 下記のようなソースです。 IEではどのように書けば良いのでしょうか。 <html> <head> <script type="text/javascript" language="javascript"> function change_box(){ temp = document.getElementById("in").value; temp = temp.replace(/\n/g,""); document.getElementById("out").value = temp; } </script> </head> <body> <form> <textarea id="in" rows="3" > 一行目 二行目 三行目 </textarea><br /> <textarea id="out" rows="3" ></textarea><br /> <input type="button" value="変換" onclick="change_box()"> </form> </body> </html>

  • <br>タグを改行に変えたい

    掲示板を作っています。 テキストファイルに書き込んである文字列ですが、改行は<BR>に変換して保存します。 編集で呼び出すときに、<BR>をもとの改行コードに戻す作業を試みています。 $message =~ s/<br>/\n/ig; とやるとテキストエリアがすべて空白です。 $message =~ s/<br/\n/ig; と>をなくすと改行されてテキストエリアに表示されます。 ただ、データには>が残ったまま表示されます。 この対処法を教えてください。

    • ベストアンサー
    • Perl
  • thickbox.jsで表示したフォームで改行

    ThickBox 3.1(thickbox.min.js)で表示させたモーダルウインドウ内に、メールフォームを設置しています。 入力時にテキストエリア内で改行したくてenterキーを押すと、モーダルウインドウが閉じてしまいます。 テキストエリアにフォーカスしている場合も、していない場合も同様です。 モーダルウインドウが開いているときにenterキーを押してもウインドウが閉じないようにしたい&テキストエリアにフォーカスしているときにenterキーを押すと改行されるようにしたいのですが、どうすればよいのでしょうか?

  • テキストエリアでの改行の仕方

    MP3ファイルを右クリックしてプロパティを表示し、 概要タブで詳細設定を選択して、 プロパティが「歌詞」の値に歌詞を書き込みたいのです。 値のところをクリックすると、テキストエリアが出てくるのですが、 そこで文字を入力し、Enterキーを押すと決定になってしまい、 改行が入力できません。 Shift+EnterやAlt+Enterなども試してみましたが、 できませんでした。 改行をするにはどうしたら良いでしょうか? ご存知の方、どうぞ教えてください。 宜しくお願い致します。

  • DreamweaverMXの改行について

    WindowsXPでDreamweaverMXを使用しています。 Dreamweaver自体の操作が良くわからなくて コードウィンドウに直接タグ書きをしているような 状態です。 2行、改行をしたい場合に<br><br>と入力すると IEでは、なぜか2行分改行されません。 一行だけ改行された状態になっています。 これが、オペラやDreamweaverのデザインビューだと きちんと2行分改行されているのですが・・・。 <br><br><br><br>と入力して ようやくIEで2行分改行されているような状態 です。 何か設定ミスや、間違って操作しているところが あるのでしょうか? よろしければ、ご指摘下さい。 よろしくお願いします。

  • Firefoxでのテキストエリアに入力した文字の改行

    Firefoxでのテキストエリアに入力した文字の改行について質問させてください。 http://oshiete1.goo.ne.jp/qa2691799.html ↑のページを参考にテキストエリアに入力したテキストがリアルタイムで確認できるページを作成しました。 IEではテキストエリア内の改行がちゃんと反映されたのですが、Firefoxではテキストエリア内の改行が反映されずに、エンターキーを押すと半角スペース?になるだけで一連の文として出力されてしまいます。 どなたかこの現象の解決策をお知りの方がいらっしゃいましたらご教授ください。 よろしくお願いします。

専門家に質問してみよう