OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

複数のsubmitによって送信するデータを変える

  • 困ってます
  • 質問No.128955
  • 閲覧数1702
  • ありがとう数4
  • 気になる数0
  • 回答数5
  • コメント数0

お礼率 74% (121/163)

HTML内にsubmitボタンが複数あるとします。
通常は、<FORM>タグの中の全てのデータを送信してしまいますが、
FORMタグを2つ用意しないで、
submit Aボタンはこの入力フォームの値を送信。
submit Bボタンはこの入力フォームの値を送信の様にできないものでしょうか?
通報する
  • 回答数5
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.5
レベル11

ベストアンサー率 53% (199/370)

>しかし、以下の文がどうしても利いていません。
>document.inForm.aTextdocument.outForm.submit();

ごめんなさいぃぃぃ!!
ゴミが混じりました。
document.outForm.submit();
だけです。

なんで前にこんなのついてしまったのだろう・・・。

失礼いたしました。
お礼コメント
megane

お礼率 74% (121/163)

sightさん度々ありがとうございました。
何とかできるようになりました。
それにしても発想がおもしろくて
まだまだ奥が深いなと感じています。
もっと勉強しなくては...
投稿日時 - 2001-09-04 08:53:25
-PR-
-PR-

その他の回答 (全4件)

  • 回答No.1
レベル11

ベストアンサー率 53% (199/370)

押されたボタンによって送るデータを選択するとなると・・・。 たぶん普通は、JavaScriptとダミーの<FORM>(hiddenエリアのみ)を2つ用意してやるんでしょうね。 FORM要素の中で名前と値を満足した要素はsubmitで全部送られてしまいますから。 submit AとSubmitBとで、別々の入力フィールドの値を送信する、という方法は存じませんが、submit AとSub ...続きを読む
押されたボタンによって送るデータを選択するとなると・・・。
たぶん普通は、JavaScriptとダミーの<FORM>(hiddenエリアのみ)を2つ用意してやるんでしょうね。
FORM要素の中で名前と値を満足した要素はsubmitで全部送られてしまいますから。

submit AとSubmitBとで、別々の入力フィールドの値を送信する、という方法は存じませんが、submit AとSubmitBとに別々のNAME属性を付けて、受け取った方でどちらのsubmitボタンが押されたか判断して・・・というのではダメでしょうか?
補足コメント
megane

お礼率 74% (121/163)

作ってみたFORM内だけ抜粋しますと、
<FORM NAME="aFORM" action="mailto:xxxx" METHOD="post">
<INPUT TYPE="text" NAME="aText"><BR>
<INPUT TYPE="text" NAME="bText"><BR>
<A HREF="javaScript:document.aFORM.aText.submit();">送信</A>
<A HREF="javaScript:document.aFORM.bText.submit();">送信</A>
</FORM>
という風に作成したのですが、submitが利かないようです。
なかなかだめですね…。もう少し考えてみます。
投稿日時 - 2001-09-03 15:38:40
お礼コメント
megane

お礼率 74% (121/163)

回答ありがとうございます。
sightさんの属性を付けるというヒントを元に作ってみました。
投稿日時 - 2001-09-03 15:38:32


  • 回答No.2
レベル7

ベストアンサー率 50% (7/14)

それぞれのボタンのONCLICK時に送信しないフィールドのDISABLED属性を TRUEにすれば、送信するデータの分別はできます。 お試しあれ。 ...続きを読む
それぞれのボタンのONCLICK時に送信しないフィールドのDISABLED属性を
TRUEにすれば、送信するデータの分別はできます。
お試しあれ。
お礼コメント
megane

お礼率 74% (121/163)

回答ありがとうございます。
様々な方法でこの問題を解決したいと思いますので、
makokokoさんの方法でも試してみたいと思います。
投稿日時 - 2001-09-03 18:10:19
  • 回答No.3
レベル11

ベストアンサー率 53% (199/370)

><A HREF="javaScript:document.aFORM.aText.submit();">送信</A> あ、これじゃ無理です。 INPUTはsubmitなんてメソッドは持っていないはずです。 submitできるのはFORM要素単位です。 <INPUT TYPE="submit">を使わないのならば、N ...続きを読む
><A HREF="javaScript:document.aFORM.aText.submit();">送信</A>
あ、これじゃ無理です。
INPUTはsubmitなんてメソッドは持っていないはずです。
submitできるのはFORM要素単位です。

<INPUT TYPE="submit">を使わないのならば、NAME属性云々、という方法は使えません。
アンカータグの中でJavaScriptでフォームをサブミットするということは、submitタイプのINPUT要素をもたないですから、存在しない要素にNAME属性を設定するなどできないはずです。

JavaScript使うんでしたら、FORM2つは必須でしょう。


あんまよくないし、動作確認もしてないけど、こんな感じ?そのままじゃ動かないかも。
JavaScriptでoutFormに書き込んでsubmitします。
TextNameの値の方にどっちのINPUTを選んだか、Textの値の方に入力した値がはいるはず。


<SCRIPT LANGUAGE="JavaScript">
<!--
function submitForm(formObj){
document.outForm.TextName.VALUE = formObj.NAME ;
document.outForm.Text.VALUE = formObj.VALUE ;
document.inForm.aTextdocument.outForm.submit();
}
//-->
</SCRIPT>

<FORM NAME="inFORM">
<INPUT TYPE="text" NAME="aText"><BR>
<INPUT TYPE="text" NAME="bText"><BR>
<A HREF="javaScript:submitForm(document.inForm.aText);">送信</A>
<A HREF="javaScript:submitForm(document.inForm.bText);">送信</A>
</FORM>

<FORM NAME="outFORM" action="mailto:xxxx" METHOD="post">
<INPUT TYPE="hidden" NAME="TextName" VALUE="">
<INPUT TYPE="hidden" NAME="Text" VALUE="">
</FORM>
お礼コメント
megane

お礼率 74% (121/163)

sightさん。再びありがとうございます。
なるほど。複雑ですが、プリントアウトして構造を分析してみました。
aTextフォームに"aaa"を記入し、送信したとして、
<!--
function submitForm(formObj){
document.outForm.TextName.VALUE = formObj.NAME ;
/*outFORMの"TextName"に初期値として"aText"を...*/
document.outForm.Text.VALUE = formObj.VALUE ;
/*outFORMの"Text"に初期値として"aaa"を...*/

つまり、outFORMの方をsubmitするわけですね!
しかし、以下の文がどうしても利いていません。
document.inForm.aTextdocument.outForm.submit();
}
//-->

これは
document.inForm.aText;
document.outForm.submit();
でしょうか?
どうしてもoutFORMがsubmitされません。
もう少し調べてみたいと思います。
ありがとうございました。
投稿日時 - 2001-09-03 18:23:14
  • 回答No.4
レベル11

ベストアンサー率 53% (199/370)

makokoko様 >それぞれのボタンのONCLICK時に送信しないフィールドのDISABLED属性を >TRUEにすれば、送信するデータの分別はできます。 おお、なるほど!! Internet Explorer限定ですけど(ですよね??)、こんな手があったんですね。
makokoko様
>それぞれのボタンのONCLICK時に送信しないフィールドのDISABLED属性を
>TRUEにすれば、送信するデータの分別はできます。
おお、なるほど!!
Internet Explorer限定ですけど(ですよね??)、こんな手があったんですね。
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ