- ベストアンサー
メールフォーム:「必須項目」も「送信完了」画面もどちらも設定したい
JavaScript初心者です。よろしくお願い致します。 JavaScriptを使用してメールフォームを作成しています。 「送信」ボタンを押した後、必須項目確認はJavaScriptで作成できました。 「送信」ボタンを押した後、「送信完了」画面(別ページに飛ぶ設定)もJavaScriptで作成できました。 しかし【どちらの動作も一緒に設定】しようとすると上手く動いてくれません。 FORMのonSubmit設定+「送信」ボタン自体に「送信完了」のアラート表示する方法も試してみたのですが「送信完了」アラートが先にでてしまったり…。 「送信完了」の方法は別ページリンクでもアラートでもかまいません。 必須項目+最後に「送信」を押して、送信された後の何かリアクションを入れる方法を探しています。 教えて!Gooも初心者で何か失礼がありましたら申し訳ありません!どうかよろしくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#2です。 メーラーを起動するタイプなんですね。 ちょっと勘違いしてました。 「送信完了」画面がCGIで、そのCGIによってメール送信していると思ったので。 フォームタグを <form action="mailto:●@メールアドレス●" method="post" Accept-charset="shift_gis" Enctype="text/plain" name="myform"> サブミットボタンを <input type="button" name="button" value="送信" onClick="Check();" /> 入力項目確認ファンクションを function Check(){ if(document.myform.name.value==""){ alert("名前を入力してください。"); return false; } if(document.myform.email.value==""){ alert("メールアドレスを入力してください。"); return false; } document.myform.submit(); location.href="送信完了画面アドレス"; } に変えてお試しあれ。
その他の回答 (2)
- Kuppycat
- ベストアンサー率50% (109/216)
<form method="post" action="送信完了画面アドレス" onSubmit="必須項目確認ファンクション"> とタブを書いて、必須項目確認ファンクションでエラーが合った場合、Falseを返せばいけるかと。 function 必須項目確認(){ var errflg; (項目確認) if(errflg){ return false; }else{ return true; } }
補足
お返事感謝いたします。 早速チャレンジしてみました。ありがとうございます。 今の状態はactionにメールアドレスをいれてそのアドレス場所に送信しようとしています。 ↓ -------------- <form action="mailto:●@メールアドレス●" method="post" Accept-charset="shift_gis" Enctype="text/plain" name="myform" onSubmit="return Check()"> function Check(){ if(document.myform.name.value==""){ alert("名前を入力してください。"); return false; } if(document.myform.email.value==""){ alert("メールアドレスを入力してください。"); return false; } return true; } -------------- この場合、action="送信完了画面アドレス" を入れてしまうと 「送信先のメールアドレスはどこに?」となってしまって 私のJavaScript初心者の頭がそこで止まってしまいました。 この場合最終送信先はどこに設定すればよいでしょうか。 もしかすると物凄く変な事をお聞きしているかもしれません。すみません。
- yambejp
- ベストアンサー率51% (3827/7415)
HTMLでメールを送信するには、PHPやCGIという サーバー側のプログラムが必要です。 javascriptではがんばっても送信はできませんので ご要望の命題を満たす機能はむずかしいと思います。 ちなみに単純に場合分けだけわかればいいのであれば 必須確認ページに飛ばし、必須事項がみたされていれば そのまま送信ページに飛ばすというフローで 大丈夫だと思います。
お礼
お返事感謝いたします。 CGIにしたかったのですが、いろいろな問題からヤメになってしまったので、そのままメールアドレスにリンクする方法を薦めましたが、フォームがよいということでサーバー側のプログラムなしで簡単フォームを作成しようとしています。 やはり無茶でしょうか…。 > 必須確認ページに飛ばし なるほど…検索してみたらjavascriptで一度必須確認ページ作成の仕方が掲載されていたのでチャレンジしてみます。 ありがとうございました。
お礼
ありがとうございます!!! 早速試して思い通りの形ができました。 とても助かりました。有難うございました。