• ベストアンサー

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> とこんな書き方でも大丈夫なのでしょうか?

  • megane
  • お礼率74% (125/168)

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

  • ベストアンサー
  • sight
  • ベストアンサー率53% (199/370)
回答No.3

No.2の方が書いていらっしゃるDISABLEDプロパティの方は、HTML4.01の仕様的にも、満足なFORM部品として扱わないとされていますので、送信されることはないでしょう。(試していないので、IEの実装ミスで送信されてしまうかもしれませんが。) これに対応していないNetscape4.xに関してですが、taint()メソッドはよく存じませんけど、なんとなく、 Description Tainting prevents other scripts from passing information that should be secure and private, such as directory structures or user session history. JavaScript cannot pass tainted values on to any server without the end user's permission. を読む限りでは、「ユーザの許可なくして送信できない」→許可すれば送信される で、なにか違うように思えるんですよね。 現状で現実的なのは、やっぱりhiddenばかりの送信用Form要素を作っておいて、送信するときは、表示用のFormの中の送信したい名前・値のセットをそっちにコピーしてそれをsubmitする、って方法なのかな?

megane
質問者

お礼

回答ありがとうございます。 >現状で現実的なのは、やっぱりhiddenばかりの送信用Form要素を作っておいて… やっぱりそれが無難でしょうか。 その方法なら何とか出来そうです。 ちょっと複雑ですけど確実ですよね。

その他の回答 (2)

  • makokoko
  • ベストアンサー率50% (7/14)
回答No.2

ネットスケープならばデータテイント機能を使って、データの送受信を制御できます。 フォーム内にある特定のエレメントを送信したくない時は untaint(document.フォーム名.フィールド名); 送信可能にする時は taint(document.フォーム名.フィールド名); とJavScript内で記述すればOKだと思います。 以上はネットスケープのみの記述方法です。 IEはDISABLEDプロパティを操作することで、同じ制御をすることができるので、 JavaScriptはクロスブラウザな書き方をしないといけないと思います。 でも、データテイント機能はそのままじゃ使えないかもなぁ~

megane
質問者

お礼

回答ありがとうございます。 >JavaScriptはクロスブラウザな書き方をしないといけないと思います。 はい。ほんとですね。 私もできればクロスブラウザで行ってみたいと思っています。

  • sight
  • ベストアンサー率53% (199/370)
回答No.1

>これで“Form1”内のNAMEが“aaaaa”とついたフォームの値を送信できますよね、 できますか?? Form1って、フォームオブジェクトですよね? submit()はフォームオブジェクトに対しておこなわれますから、 >document.Form1.aaaaa.submit(); という書き方はおかしくないですか? document.Form1.submit(); と書くべきでしょう。 ですから、そもそも >document.Form1.('aaaaa,bbbbb').submit(); という書き方が可か、不可か、という以前の問題だと思いますが。 もし、aaaaaやbbbbbもForm1と同列のフォームオブジェクトであるという前提ならば  →フォームは階層構造にできませんので、Form1の中にaaaaaなどというフォームは入れられません もし、aaaaaやbbbbbは、フォーム(Form1)に内包される要素だという前提ならば  →From1.submit()をした時点で、Form1に内包されるすべてのForm要素が送信されるので、「“aaaaa”と“bbbbb”の値を同時に送信したいときには」という疑問は不要です。常に同時に送信されます。

megane
質問者

お礼

sightさん回答ありがとうございます。 だめですか…。結構自信あったんですけど…。 >常に同時に送信されます。 はい。そうなんですけど、どうしてもたくさんある フォームの全部の値を送信するのではなく、 送りたいものだけ送信しようと試みたのです。 もう一度見直してみたいとおもいます。 ありがとうございました!

megane
質問者

補足

sightさん、いつもお世話になっております。 一ヶ月ほど前にも同じ様な愚問に 回答していただいた者です。 前回のはおかげさまで何とかクリアできました。 そしてまた愚問! ほんと勉強が全然進展してません…。

関連するQ&A

  • 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が開きます。 使い方を間違っていますでしょうか? ご指導よろしくお願いします。

  • フォームの値を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関数内でどのようにすれば渡せるのでしょうか?? 何か質問がおかしかったらご指摘願います。

  • Firefox:JavaScriptのsubmit

    JavaScriptで、以下のようにsubmitしていますが、 IEではOKで、Firefoxでは「送信開始」ボタンで反応がありません。 Firefoxではどのように書けばよいのでしょうか? 以下は、テストのため省略できるギリギリまで省略していますので、意味のないスクリプトになってますが、実際にはJavaScriptで空白個所のチェックのロジックを入れています。 <html> <head> <script language="JavaScript"> <!-- function check1(){ document.FORM1.submit(); } ---> </script> </head> <form action='http://hogehoge.jp' method='post' name="FORM1"> <input type='button' value='送信開始' onClick="check1()"> </form> </body> </html>

  • 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(); } という方法も考えたのですが、フォーム名だけ変えることができないかと考えています。 よろしくお願いします。

  • INPUT上でリターンを押してもsubmitされない方法

    フォームにてキーワードを入力し、検索ボタン押したときに javascriptにて以下の動作をさせたいと思っています。  ・hidden項目に特定値をセットしてsubmitをかける 以下のコードを書いたのですが、INPUT上でリターンを押すと submitされてしまいます。 ボタン以外でリターンを押した場合に何も動作させないようにするにはどのようにすればよいのでしょうか? -------------------------------------------------------------- <SCRIPT language="JavaScript"> <!-- function javasc_name(param){ document.form.PARAM.value = param document.form.submit() } //--> </SCRIPT> <form method="POST" action="cgi-bin/xxx.exe"> <input type="text" name="KEYWORD"> <input type="hidden" name="PARAM"> <input type="button" value="検索" OnClick="javasc_name(10)"> </form> --------------------------------------------------------------

    • ベストアンサー
    • HTML
  • 複数のsubmitボタンで押されたボタンを取得する方法

    form内の、submitボタンの値が拾えません。 1つだけsubmitボタンを設置すると値が拾えますが、 2つ以上submitボタンを設置すると拾えません。 仕様上、無理なのでしょうか? <SCRIPT language="JavaScript"> function move_post(){ alert(document.frmMvPost.btn.value); } </SCRIPT> <FORM name="frmMvPost" action="" method="post" onsubmit="return move_post()"> <INPUT type="submit" name="btn" value="テスト1"> <INPUT type="submit" name="btn" value="テスト2"> <INPUT type="submit" name="btn" value="テスト3"> </form>

  • Chromeで複数submit

    現在1つのボタンで2つのフォームをsubmitしているのですがGoogleChromeだけ1正常に動作せず困っております。 下記スクリプトでIE、FireFoxはnform、nform2ともにsubmitされるのですがChromeのみnform2(後に記述したほう)のみ実行されます。 解決方法はありますでしょうか? 宜しくお願い致します。 <script language="javascript"><!-- function send() { if(window.confirm('設定してよろしいですか?')){ document.nform.submit(); document.nform2.submit(); }else{   alert('キャンセルしました'); } } //--></script> <form name="nform" action="a.php" target="blank" method="POST"> <input type="hidden" value="a" name="1"> </form> <form name="nform2" action="b.php" method="POST"> <input type="hidden" value="a" name="1"> </form> <button onClick="send()">ボタン</button>

  • フレーム分けされたJSPでのsubmit

    JSP画面の上フレームがframeA,下がframeBで 上のフレームにsubmitボタンがある時、 下のフレームのフォームをsubmitしたい場合は どのようにすればいいのでしょうか? 以下のようにしているのですが、うまく動いていません。 教えて下さい。 現在書いているframeAの処理 ================================================== <SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript"> <!-- function doSubmit(){ parent.frameB.document.ManagementFORM.submit(); } //--> </SCRIPT> <INPUT TYPE="submit" VALUE="登録確認画面へ" onClick="doSubmit()"> =============================================================== frameBのFORM ============================================================== <FORM METHOD="POST" ACTION="ManagementProcessServlet" NAME="ManagementFORM"> ==============================================================

    • ベストアンサー
    • Java
  • 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されません。 どこが間違っているのでしょうか。 よろしくお願いいたします。

  • POST送信かGET送信か

       ------------------------------------------ <SCRIPT language="JavaScript"><!-- function GoPage(url, id){ document.form.action = url; document.form.id.value = id; document.form.submit(true) } // --></script> <!--中略--> <input type="submit" name="submit" value="送信" onClick="javascript:GoPage("a.php", "1")">    ------------------------------------------    上記のような処理を書いた場合、 遷移先である a.php で id(値:1)を取得する時は POSTで受け取るのですか?それともGETでしょうか?   

専門家に質問してみよう