• ベストアンサー

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

  • submitではなくbuttonで送信

    事情があり、submitではなくbuttonでフォームのデータを送信したいのですが、以下のように書くとbuttonでは4567が送信されません。 <form action="test.cgi" method="post"> <INPUT type="hidden" name="aaa" value="1234"> <INPUT type="submit" name="bbb" value="4567"> </form> ↓ <form action="test.cgi" method="post"> <INPUT type="hidden" name="aaa" value="1234"> <INPUT type="button" name="bbb" value="4567" onclick="submit();" > </form> submitと同じように、bbbのデータ4567も送信するにはどのように書けばよいのでしょうか? 宜しくお願いします。

  • submit()の動作について。

    <style type="text/css"> .p1{display=none;} </style> <script language="JavaScript"> function BtnNone(){ document.btn1.style.display = "none"; document.msg1.style.display = "inline"; document.frm1.submit(); } </script> </head> <form name="frm1" method="post" action="send.cgi"> <div id="btn1"> <input type="text" name="a"> <input type="submit" name="submit" value="SEND" onClick="BtnNone()"> <input type="submit" name="submit" value="BACK"> </div> <p class="p1" id="msg1">送信中</p> </form> ------------------------- 主旨が変わったので新しく質問します。 こういうソースで"SEND"をクリックするとボタンが消えて「送信中」のメッセージが表れるのですが、secd.cgiがsubmitされません。 どこが間違っているのでしょうか。 よろしくお願いいたします。

  • formの中で別のactionをもったsubmitボタンの設置。

    formの中で別のactionをもったsubmitボタンの設置。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"> <title>sample</title> <script language="JavaScript" type="text/javascript"> <!-- //<クリックした時に実行される関数> //*** 確認画面A function func1(form){ document.form1.check[].value =form.check[].value; document.form1.submit(); } //*** 確認画面B function func2(form){ document.form2.check[].value =form.check[].value; document.form2.submit(); } //--> </script> </head> <body class="index"> <form enctype="multipart/form-data"> <input type="check" name="test[]" value="0">0 <input type="check" name="test[]" value="1">1 <input type="check" name="test[]" value="2">2 <input type="button" onClick="func2(this.form)" value="確認B"> <input type="button" onClick="func1(this.form)" value="確認A"> </form> <!-- sousin.php画面へ --> <form method="post" name="form1" action="sousin.php" enctype="multipart/form-data"> <input type="hidden" name="check[]"> </form> <!--- text.php画面へ ---> <form method="post" name="form2" action="text.php" enctype="multipart/form-data"> <input type="hidden" name="check[]"> </form> </body> </html> 上記のように記述し、フォームの中に別のactionをもったsubmitボタンを設置しました。 チェックボックスで何と何がチェックされたかを渡したいのですが、エラーが発生します。 おそらくjavascript内の構文でcheck[]と記述してるからだと思いますが、 どのようにすれば受け渡すことができるのでしょうか。 checkのみにすると1つの値しか渡せません。

    • ベストアンサー
    • HTML
  • javascript form送信後の動作

    以下のスクリプトでiframeにデータは送信できているんですが、<input type="text">に入力したテキストが残ってしまいます。どのように記述したらうまくいくでしょうか? <script type="text/javascript"> function send(){ var frm=document.txt_submit; frm.submit(); frm.reset(); } </script> <form name="txt_submit" action="log.cgi" method="post" target="log" autocomplete="off"> <input type="text" name="ctxt" size="20" value=""> <input type="button" value="送信" onclick="return send();"> </form>

  • submitを2回発行した時の不安定な動き

    -------------------------------------------------------------------------------- function execute1 { main.submit(); /* (1) */ main.submit(); /* (2) */ } <FORM name="main" action="XXX.asp" method="POST"> <INPUT class="button" type="button" value="実行" name="bt1" onClick="execute1;"> </FORM> -------------------------------------------------------------------------------- 上記のASPで[実行]ボタン押下時にsubmitが2回発行されて、XXX.aspが2回実行されるの ですが、1回しか実行されない時もあります。 (1)のsubmitが別Scriptで発行されているのに気付かず(2)で独自コーディングをしたために 2回発行しているのですが、常に2回実行されない理由がわかりません。 IISログを見ても2回POSTが発行されている時と、1回のみの時があります。 実施する環境によって2回submitされる頻度が違う(法則性なし)ように感じます。 OSやIEやマシンスペック等に影響されるものなのでしょうか?

  • javascript submit()の後の動作

    scriptはjsファイルで分離しています。 送信ボタンをクリックした場合の動作は期待通りの動作をしています エンターキーを押したときの動作が、フォームの送信は正常に実行されるのですが、 document.getElementById('ctxt').value= '';が実行されません。 その後、試しにアラートも入れてみましたけど、動作していないようです document.forms[txt_submit].submit();の後の部分が実行されるようにするにはどうしたらいいのでしょうか? function Key_on(){ if(window.event.keyCode == 13){ document.forms[txt_submit].submit(); document.getElementById('ctxt').value= ''; alert('ん?'); } } function send(){ document.txt_submit.submit(); document.getElementById('ctxt').value= ''; } ----------------- <form id="txt_submit" name="txt_submit" action="log.cgi" method="post" target="log" autocomplete="off"> <input type="text" id="ctxt" name="ctxt" size="20" value="" onkeydown="Key_on()"> <input type="button" value="送信" onclick="return send();"> </form>

  • 指定したURLを開くアクションスクリプトを教えてください

    FlashCS4です。アクションスクリプト3.0です。 タイムラインのフレームにアクションスクリプト3.0を使用して、ボタンをクリックしたら指定したURLが別ウインドウで開くアクションスクリプトの記述を教えてください。お願いします。 具体的には…例えばボタンに「navi_btn」と言うインスタンス名を使用して、そのボタンをクリックしたら指定したURLが別ウインドウで開くようにしたいのです…。教えてください。よろしくお願い致します。

    • ベストアンサー
    • Flash
  • submitボタンのアラートを閉じても送信されてしまう

    初歩的な質問で恐縮です。 PHPでメールフォームを作っています。 submitを押した時に「送信してよろしいですか?」というアラートを出しているのですが、このアラートを閉じても(右上の「×」を押しても)送信されてしまいます。 ユーザーがやっぱり送信をやめたくても、submitを押してしまったら回避できないという状況です。 運用が迫っているため急ぎですが、ご教授いただけないでしょうか。 ボタンのソースはこちらです。 なお、<form>にonSubmitで記述した場合も同じでした。 <input type="submit" onClick="javascript:alert('こちらの内容で送信します。よろしいですか?')" value=" 送 信 "> ちなみに、内容チェックは送信されてから行っていますので、ここでは単純にアラートを出すだけです。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • アクションスクリプトでブックマーク登録ボタンを作りたいです

    ボタンシンボルを作成して、そのボタンシンボルにアクションスクリプトを使用して、ブックマークに登録出来るようにしたいのです。 そのボタンをクリックする事によって、そのサイトがブックマークに登録出来るようなアクションスクリプト(の記述)を使いたいのですが、どなたか解る方がいましたら教えてください。よろしくお願い致します。

    • ベストアンサー
    • Flash
  • 無効な viewstate

    無効な viewstate 事情があり、javascriptからaspのフォームをサブミットしたいと考えています。 後述したプログラムを記述しましたが、「無効な viewstate です」といった エラーが発生します。 おそらく、javascriptから実行したsubmitが、aspのviewstateの値をサーバに 送信していない為だと思うのですが、javascriptでviewstateを取得する方法など 回避策はあるのでしょうか? <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <script type="text/javascript"> function btn_onclick() { document.getElementById("form1").submit(); }; </script> </head> <body> <form id="form1" runat="server" action="nextpage2.aspx"> </form> <input type="button" value="test" onclick="javascript:btn_onclick();" /> </body> </html>