-PR-
  • すぐに回答を!
  • 質問No.6907044
解決
済み

ラジオボタンでフォームの送信先を切り替える

  • 閲覧数267
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 29% (39/133)

<script type="text/javascript">
<!--
function setDisabledTextbox(F,N1,N2,N3) {
if(N1 == "OrderPayment0") {
F[N2].disabled = true;
F[N3].disabled = false;
}
else {
F[N2].disabled = false;
F[N3].disabled = true;
}
}
//-->
</script>

//フォームの1の記述
<form method="post" action="送信先1">

//ラジオボタン1の記述
<input type="radio" name="payment1" value="値1" onclick="setDisabledTextbox(this.form,this.id,'tbox0','tbox1')" <?php if($payment_name == "値1") echo "checked"; ?> id="OrderPayment0" />
<label for="OrderPayment0">値1</label><br />
//ラジオボタン2の記述
<input type="radio" name="payment2" value="値2" onclick="setDisabledTextbox(this.form,this.id,'tbox0','tbox1')" <?php if($payment_name == "値2") echo "checked"; ?> id="OrderPayment1" />
<label for="OrderPayment1">値2</label><br />


送信1の入力フォームの記述



<input type="submit" name="tbox0" value="送信1" disabled />
</form>

//フォームの2の記述
<form method="post" action="送信先2">



送信2の入力フォームの記述



<input type="submit" name="tbox1" value="送信2" disabled />
</form>


上記の記述で、最初、送信ボタン1及び送信ボタン2をdisabled状態にしておいて、ラジオボタンの1が押されたら送信ボタンの1を活性化、ラジオボタンの2を押したら送信ボタンの2を活性化するというように切り替えたいのですが、今のところ送信ボタンの1の切り替えはうまくいっているのですが、送信ボタンの2の方がdisabledされたままにまります。フォームの有効範囲の問題かな?と思って、ラジオボタンの2の記述をフォームの2の記述の方に移してみたりしたのですが、結果は同じようです。
両方とも切り替えるようにするには、どのように記述すればよいのでしょうか?

御教示願えればと思います。
通報する
  • 回答数1

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

  • 回答No.1
レベル12

ベストアンサー率 68% (258/374)

>onclick="setDisabledTextbox(this.form,this.id,'tbox0','tbox1')"
のthis.formはフォーム1を指しますよね?
tbox1はフォーム1には存在しないのですから、
>F[N3].disabled = false;
>F[N3].disabled = true;
としても何も変更されません、というかエラーになっていると思うのですが。

tbox1を操作したいのであれば、フォーム2のtbox1を参照するようにしないといけません。

ちなみに、
disabled = true;
とすると無効化されるのですが、認識は合っていますか?
なんだか逆に書いているように思います。
お礼コメント
tmiyoshi

お礼率 29% (39/133)

御指摘、ありがとうございました。

<script type="text/javascript">
<!--
function setDisabledTextbox(F1,F2,ID,N1,N2) {
if(ID == "OrderPayment0") {
F2[N2].disabled = false;
F1[N1].disabled = true;
}
else {
F2[N2].disabled = true;
F1[N1].disabled = false;
}
}
//-->
</script>

//フォームの1の記述
<form method="post" action="送信先1">

//ラジオボタン1の記述
<input type="radio" name="data[Order][payment]" value="値1" onclick="setDisabledTextbox(document.forms[0],document.forms[1],this.id,'tbox0','tbox1')" <?php if($payment_name == "値1") echo "checked"; ?> id="OrderPayment0" />
<label for="OrderPayment0">値1</label><br />
//ラジオボタン2の記述
<input type="radio" name="data[Order][payment]" value="値2" onclick="setDisabledTextbox(document.forms[0],document.forms[1],this.id,'tbox0','tbox1')" <?php if($payment_name == "値2") echo "checked"; ?> id="OrderPayment1" />
<label for="OrderPayment1">値2</label><br />



送信1の入力フォームの記述



<input type="submit" name="tbox0" value="送信1" disabled />
</form>

//フォームの2の記述
<form method="post" action="送信先2">



送信2の入力フォームの記述



<input type="submit" name="tbox1" value="送信2" disabled />
</form>

でうまくいくようになりました。
投稿日時 - 2011-07-29 21:29:16
-PR-
-PR-
  • 回答数1
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

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

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

特集


関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ