アプリ版:「スタンプのみでお礼する」機能のリリースについて

HTML内にsubmitボタンが複数あるとします。
通常は、<FORM>タグの中の全てのデータを送信してしまいますが、
FORMタグを2つ用意しないで、
submit Aボタンはこの入力フォームの値を送信。
submit Bボタンはこの入力フォームの値を送信の様にできないものでしょうか?

A 回答 (5件)

押されたボタンによって送るデータを選択するとなると・・・。


たぶん普通は、JavaScriptとダミーの<FORM>(hiddenエリアのみ)を2つ用意してやるんでしょうね。
FORM要素の中で名前と値を満足した要素はsubmitで全部送られてしまいますから。

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

この回答への補足

作ってみた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
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
sightさんの属性を付けるというヒントを元に作ってみました。

お礼日時:2001/09/03 15:38

それぞれのボタンのONCLICK時に送信しないフィールドのDISABLED属性を


TRUEにすれば、送信するデータの分別はできます。
お試しあれ。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
様々な方法でこの問題を解決したいと思いますので、
makokokoさんの方法でも試してみたいと思います。

お礼日時:2001/09/03 18:10

><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>
    • good
    • 0
この回答へのお礼

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

makokoko様


>それぞれのボタンのONCLICK時に送信しないフィールドのDISABLED属性を
>TRUEにすれば、送信するデータの分別はできます。
おお、なるほど!!
Internet Explorer限定ですけど(ですよね??)、こんな手があったんですね。
    • good
    • 0

>しかし、以下の文がどうしても利いていません。


>document.inForm.aTextdocument.outForm.submit();

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

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

失礼いたしました。
    • good
    • 0
この回答へのお礼

sightさん度々ありがとうございました。
何とかできるようになりました。
それにしても発想がおもしろくて
まだまだ奥が深いなと感じています。
もっと勉強しなくては...

お礼日時:2001/09/04 08:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!