• ベストアンサー

htmlでsubmit送信時、actionより前に、scriptを動作させたい

よろしくお願いします。 formの送信ボタン押下して、action=test.asp と やっていますが、 test.aspが動作する前に 送信ボタンonclickでhtml内に記述したscriptを動作させたいのですが、どうやればいいでしょうか?

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

submit される(前)タイミングで適当な関数を呼出するのは、 <form name="MainForm" method="post" action="sendmail.asp" onsubmit="hantei()"> のようにすれば <input type="submit" value="サブミット"> のように普通のサブミットボタンで良いです。 そうでないボタンで、onclick 時に submitを実行するには onclick で呼び出したボタンで document.MainForm.action="sendmail.asp" document.MainForm.submit が必要ですが、そうでない場合は必要有りません。 また、VBScript では、文末に';'が要りません。 というか付けるとエラーになります。 このためにスクリプトが実行されていないのだと思います。 document.MainForm.action="sendmail.asp"; document.MainForm.submit(); を document.MainForm.action="sendmail.asp" document.MainForm.submit として下さい。

okey-koba
質問者

お礼

大変詳しくおしえていただいて感謝しております。 どうもありがとうございます。 今後ともよろしくお願いします。 、、、、 ひとつ誤らなければならないことがあります。 昨日、どうにも原因がわからず、ロジックを msgboxのみにしたところ通りました。 エラーとなっていた原因は、 endifが足りなかったからでした。 どうもすいません!!! 開発にDreamweaverを使用していますが、 「if ・・・ endif」 でendifがなくてもエラーにしてくれないので 気がつきませんでした。 他のQAで、ASP・vbscript開発には MSのVisual Inter Dev が良いと書いてあったので今後はそれも併用します。

すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.2

先に走らせたいscriptの関数hoge()の最後に document.フォーム名.action="test.asp"; document.フォーム名.submit(); と書いておいて、フォームボタンは <input type="button" onClick="hoge()"> とすると、スクリプトが走った最後にtest.aspへ送られると思います。

okey-koba
質問者

お礼

大変詳しくおしえていただいて感謝しております。 どうもありがとうございます。 今後ともよろしくお願いします。 、、、、 ひとつ誤らなければならないことがあります。 昨日、どうにも原因がわからず、ロジックを msgboxのみにしたところ通りました。 エラーとなっていた原因は、 endifが足りなかったからでした。 どうもすいません!!! 開発にDreamweaverを使用していますが、 「if ・・・ endif」 でendifがなくてもエラーにしてくれないので 気がつきませんでした。 他のQAで、ASP・vbscript開発には MSのVisual Inter Dev が良いと書いてあったので今後はそれも併用します。

okey-koba
質問者

補足

早速ありがとうございます。 以下のソースでやってみたのですが、 hanteiの「型が違います」という エクスプローラのエラーが出てしまいます。 どうすればよいでしょうか? <script language="VBScript"> sub hantei() ・・・・ document.MainForm.action="sendmail.asp"; document.MainForm.submit(); end sub </script> <form name="MainForm" method="post" action="sendmail.asp"> <input type="button" onclick="hantei()" value="送信"/>

すると、全ての回答が全文表示されます。
noname#18558
noname#18558
回答No.1

formのonSubmitイベントでいいんじゃないでしょうか? もしくは、送信ボタンのonClickで該当scriptを実行する。 <input type="submit" onClick="hoge()" /> これでいいんじゃないですか? 逆に、何が分からないのかが疑問です。

okey-koba
質問者

お礼

大変詳しくおしえていただいて感謝しております。 どうもありがとうございます。 今後ともよろしくお願いします。 、、、、 ひとつ誤らなければならないことがあります。 昨日、どうにも原因がわからず、ロジックを msgboxのみにしたところ通りました。 エラーとなっていた原因は、 endifが足りなかったからでした。 どうもすいません!!! 開発にDreamweaverを使用していますが、 「if ・・・ endif」 でendifがなくてもエラーにしてくれないので 気がつきませんでした。 他のQAで、ASP・vbscript開発には MSのVisual Inter Dev が良いと書いてあったので今後はそれも併用します。

okey-koba
質問者

補足

早速ご回答ありがとうございます。 以下のソースでやっておりますが、 sendmail.aspが動いて、 関数hanteiが動いておりません。 先にhanteiを動かしてから、 sendmail.aspを動かしたいのですが、 どうすればよろしいでしょうか <script language="VBScript"> sub hantei() ・・・・ document.MainForm.action="sendmail.asp"; document.MainForm.submit(); end sub </script> <form name="MainForm" method="post" action="sendmail.asp"> <input type="button" onclick="hantei()" value="送信"/>

すると、全ての回答が全文表示されます。

関連するQ&A