• ベストアンサー

フォームの確認画面がうまく表示されません

フォームで氏名を入力して確認画面を出したいのですが、 確認画面で、名前が出ずにソースがそのまま表示されます。 どうしてもわからないので、どなたかよろしくお願いします。 <script LANGUAGE="JavaScript"> <!--// function check(){ document.open(); document.writeln('<html>\n<head>'); document.writeln('<title>送信内容確認</title>'); document.writeln('</head>\n<body>\n<table>'); document.write('<tr>\n<td>名前:</td>\n<td>'); document.write('+document.kakunin.NAME.value+'); document.writeln('</td>\n</tr>\n</table>'); document.writeln('</body>\n</html>'); document.close(); } //--> </script> </head> <body> <form NAME="kakunin" action="mailto:aaa@hotmail.com" method="POST" enctype="text/plain"> 名前<input type="text" name="NAME"><br><br> <input type="button" value=" 確認 " onClick="check()"> </body>

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

  • ベストアンサー
  • jurarumin
  • ベストアンサー率34% (190/544)
回答No.1

一度、テキスト内容を変数に格納したら動作しましたよ。 後、「document.write」は「’」ではなく「”」で囲みます。 <script LANGUAGE="JavaScript"> <!--// function check(){ var strName; strName = document.kakunin.NAME.value; document.open(); document.writeln('<html>\n<head>'); document.writeln('<title>送信内容確認</title>'); document.writeln('</head>\n<body>\n<table>'); document.write("<tr>\n<td>名前:</td>\n<td>"); document.write(strName); document.writeln('</td>\n</tr>\n</table>'); document.writeln('</body>\n</html>'); document.close(); } //--> </script> </head> <body> <form NAME="kakunin" action="mailto:aaa@hotmail.com" method="POST" enctype="text/plain"> 名前<input type="text" name="NAME"><br><br> <input type="button" value=" 確認 " onClick="check()"> </body>

macheriemari
質問者

お礼

早速のご回答をありがとうございました。 やってみましたら、できました。 助かりました!

その他の回答 (1)

回答No.2

まず、「+document.kakunin.NAME.value+」が 表示される理由ですが document.write('+document.kakunin.NAME.value+'); 「+document.kakunin.NAME.value+」を 「'」で囲んでいるので「+document.kakunin.NAME.value+」自体を 文字列と認識しているからです。 ですので「+document.kakunin.NAME.value+」を そのまま表示しています。 次に、document.open()を行った時点で document.kakuninの存在は無くなります。 なぜかというと、open()した時点でそのドキュメント (HTMLソース)は新しい真っ白のドキュメントになるからです。 ですので、#1さんが書いているように document.open()の前に一度名前を変数に入れて document.write()でその変数を書き出します。 変数を書く時は document.write(strName); という様に「'」は不要です。

macheriemari
質問者

お礼

丁寧な説明をありがとうございました。 急にアンケートフォームを作成しなければならなくなったのですが、 文法も良く知らないため、似たようなサンプルを参考に書いています。 時間ができたらゆっくり勉強したいと思います。 また何かありましたらよろしくお願いしますね!

関連するQ&A

専門家に質問してみよう