submit後のフォームデータの書き換えで注意する点

このQ&Aのポイント
  • submit後のフォームデータの書き換えについて
  • フォームデータのバックアップと書き換え
  • 注意すべきポイントはあるか
回答を見る
  • ベストアンサー

submit後のフォームデータの書き換えで注意する点はありますか?

以下のようなJavascriptでサブミットを行った後に、フォームデータを戻すことは、普通やっても構わないのでしょうか? // フォームデータのバックアップを取る var backup = document.test_form.NAMAE.value; document.test_form.action = "test.cgi"; // フォームデータの書き換え document.test_form.NAMAE = "admin"; document.test_form.submit(); // フォームデータを戻す document.test_form.NAMAE.value = backup;

  • bazax
  • お礼率5% (12/228)

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

  • ベストアンサー
  • mahny
  • ベストアンサー率74% (57/77)
回答No.1

普通はsubmit()した後、レスポンスが到着次第ページが切り替わってしまうので、やっても構わないけど、あまり意味がないと思う。 送信後、フォームのデータを復元したいのなら submit()実行前にクッキーに入れておいてロード時に読み込むか、 サーバ側の処理でFORMのデフォルト値としてvalue属性にセットして HTML出力するのが妥当なのではないでしょうか。

bazax
質問者

お礼

説明が悪くて申し訳ございません。 フレームを使っていまして、ページの切り替わる下の部分でform送信時に上のページの切り替わらないフォームのtextに「完了」と表示させるために、下のsubmit()後に上のフォーム値を変えるという意味でした。

関連するQ&A

  • VBSのIEオブジェクトでフォームデータ送信する

    ■質問 通常IEオブジェクトを使ってフォームにセットされたデータを サブミットするには、 IE.Document.forms("").elements("").value = "" IE.Document.forms("").submit() と行うと思うのですが。 例えば下記のようなフォームを送信する際、 フォームのある"http://test.com/login_form" ページにわざわざ移動せず 直接"http://test.com/action"の "hidden"のエリアに対してデータを送信 する方法を教えて頂けませんでしょうか? また、Form1に複数のエレメントが存在する場合 全てのエレメントの値を送らないと正しく処理 できないでしょうか? ■"http://test.com/login_form" のHTML <form name="Form1" method="post" action="/action"> <input type="hidden" name="ID" value="1234"> <input type="submit"> </form>

  • submit関数の使い方

    javascript部分 function sendform(formname){ document.formname.submit(); } html部分 <form action="test.html" method="post" name="form1"> <input type="text" name="textvalue" value="1"> </form> <a href="javascript:void(0)" onclick="sendform('form1'); return false;">click1</a> <form action="test.html" method="post" name="form2"> <input type="text" name="textvalue" value="2"> </form> <a href="javascript:void(0)" onclick="sendform('form2'); return false;">click2</a> 今は、上記のように書いています。引数でフォーム名を渡し、その値によって送信フォームを変えたいのですがうまくいきません。if文を使って if(formmei=="form1"){ document.form1.submit(); }else if(formmei=="form1"){ document.form2.submit(); } という方法も考えたのですが、フォーム名だけ変えることができないかと考えています。 よろしくお願いします。

  • VBAでIEを操作submit処理について

    ExcelVBAでIEを操作する処理について勉強中です。 formで、nameが定義されておらず、submitが複数(4つ)ある場合です。 HTMLが下記記載の場合で、submit”A”をクリックしたいです。 <form action="XXXX/admin.cgi" method=POST><td> <input type="submit" value="A"></td></form> <form action="XXXX/admin.cgi" method=POST><td> <input type="submit" value="B"></td></form> <form action="XXXX/admin.cgi" method=POST><td> <input type="submit" value="C"></td></form> <form action="XXXX/admin.cgi" method=POST><td> <input type="submit" value="D"></td></form> VBAでのsubmitの記述を下記で試してみたのですが、うまくクリックできません。 ObjIE.document.forms(0).Action = "XXXX/admin.cgi" ObjIE.document.forms(0).submit どのように変えたらよいのでしょうか。。。 ご教授お願い致します。

  • フォームデータの取得について

    Aという画面からBという画面を呼び出し、B画面でファイルのアップロードを行いたいと思っています。 AからBの呼び出しは、 <a href="javascript:document.form1.submit()">B画面へ</a> ・・・ <form name="form1"method="post" action="upload.cgi" > <input type="hidden" name="id" vlue="123"> </form> このようにリンクからサブミットしています。 B画面の表示とファイルのアップロードを行うプログラムupload.cgiでAからのデータ(id)が受け取れません。 B画面からupload.cgiを呼んだ時は、アップロードファイルやhidden項目も正常に取得できています。 サブミットボタンからの送信とjavascriptからのサブミットでは送信データが違うのでしょうか。 cgi-lib.plのReadParseを使うとA画面からのデータを正常に取得できるのですが、 B画面がファイルアップロードを行うため、別の処理でフォームデータの取得を行っています。 (コーディングは長さ制限のため書けませんでしたが、とほほのWWW入門のwwwupl2.cgiを参考にしています) どなたかご存知の方いらっしゃいましたら、お願いいたします。

  • 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も送信するにはどのように書けばよいのでしょうか? 宜しくお願いします。

  • formのsubmitイベントの発生についての質問です。

    formのsubmitイベントの発生についての質問です。 あるところで、「form.submit() は submit イベントを発火しない」 とあったので、 ↓のscriptで、formのsubmitイベントを調べていました。 <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>SessionTestNext</title> <style type="text/css"></style> <script type="text/javascript"> function send1(elm){  elm.form.submit(); } function send2(){  document.getElementById("form1").submit(); } if('undefined' !== typeof document.addEventListener){  document.addEventListener('submit', function(event){   var target = event.target;   alert(target.id);  }, false); } else if ('undefined' !== typeof document.attachEvent){  document.attachEvent('onSubmit', function(event){  var target = event.srcElement;  alert(target.id);  }); } </script> </head> <body> <p>SessionTestNext 1 </p> <form id="form1" action="/php/session2.php" method="post" onsubmit="alert('Submited!');return false;"> <input type="text" name="parm2" value="fugafuga"> <input type="submit" value="サブミット"> <button onclick="send1(this)">Javascriptサブミット(1)</button> </form> <button onclick="send2()">Javascriptサブミット(2)</button> </body> </html> だのに、 send1()を実行した時は、イベントが検知され'Submited!'がアラートします。 ただし、onsubmitのハンドラーでfalseを返してるので、サブミットしません。 send2()を実行した時は確かに、submitイベントは発生せず、'Submited!'の アラート無しで、実際サブミットされます。 documentにaddEventListenerで追加したハンドラーの方でも、send1()の 時だけ検知され'form1'がアラートします。  send1()で検知されるのは何故でしょう? また、IEでも同様の動作なんですが、何故か document.attachEvent('onsubmit', の方が、まったく動きません。(タイポかも)

  • フォームの値をjavascriptでsubmitする時に

    <form name="myForm" action="" id="myID" onsubmit="return false;"> <input type="hidden" name="v1" value="" /> </form> というようなフォームがあり、 <script language="javascript"> function submitTest(v) { document.myForm.v1.value = v; document.myForm.submit(); } </script> のような形でsubmitする際に、<form>の属性で指定したid="myID"って javascript関数内でどのようにすれば渡せるのでしょうか?? 何か質問がおかしかったらご指摘願います。

  • フォームでEnterを押してもsubmitさせない

    現在製作中のサイトで、ajaxで処理を行うため、フォームでEnterキーを押しても通常のsubmitをさせずに、別途処理を関数で呼び出すようにしています(下記参照)。 チェックしたほとんどのブラウザでは思い通りの動作なのですが、IE8(他のIEは未テスト)で、同じページに別のフォーム(こちらのフォームはEnterでsubmitさせています)があるページのみ、submitされてしまいます。(ajax_submit()も実行されます) 小さな可能性でもかまいません。お心当たりがございましたらお助けください。 ▼HTML <form method="get" action="">  <input id="s" type="text" value="" onKeyPress="return submitStop(event);" />  <p id="search_sbm" onclick="ajax_submit();">検索</p> </form> ▼JavaScript function submitStop(e){  if (!e) var e = window.event;  if(e.keyCode == 13) {   ajax_submit();   return false;  } }

  • submit()で送れない

    <SCRIPT language="JavaScript"> <!-- function send55() { document.frm.aaa.value = "送る内容"; document.frm.submit(); } //--> </SCRIPT> <A href="JavaScript:void(0)" onclick="send55()">ここをクリック</A> <FORM name="frm" method="POST" action="test.php"> <input type="hidden" name="aaa"> </FORM> 上記内容で「ここをクリック」をクリックすると、aaaには"送る内容"がセットされるのですが、続くsubmit()が動作しないようです。 試しに<FORM>タグ内に以下の1行 <INPUT type="submit" name="test" value="送信テスト" > を追加して「送信テスト」ボタンをクリックすると正しくtest.phpが開きます。 使い方を間違っていますでしょうか? ご指導よろしくお願いします。

  • submit()について

    突然ですがアドバイスをお願いいたします。 <SCRIPT LANGUAGE="JavaScript"> <!-- function aSubmit(){ document.Form1.action='xxxxx'; document.Form1.aaaaa.submit(); } --> </SCRIPT> これで“Form1”内のNAMEが“aaaaa”とついた フォームの値を送信できますよね、 ここで質問なのですが、 例えばNAMEが“aaaaa”のフォームの他に NAMEが“bbbbb”というフォームがあったとして、 “aaaaa”と“bbbbb”の値を同時に送信したいときには、 <SCRIPT LANGUAGE="JavaScript"> <!-- function aSubmit(){ document.Form1.action='xxxxx'; document.Form1.('aaaaa,bbbbb').submit(); } --> </SCRIPT> とこんな書き方でも大丈夫なのでしょうか?

専門家に質問してみよう