同じform内に、ラジオボタンとサブミットボタンを配置してあります。
ラジオボタンを押された時は自分をsubmit、ボタンが押された時にはsubmitして次の画面へ遷移したいのですが、分岐の方法がわかりません。
<form action="next.htm" method="post">
とやってしまうと、ラジオボタンが押された時にもnext.htmへ遷移してしまいます。

苦慮の結果JavaScriptで、ボタンを押された時にhiddenにフラグをたてておいて、
そのフラグに値が入っていれば
<form method="post">、
入っていなければ<form action="next.htm" method="post">、
という分岐処理を書いたのですが、やはり両方next.htm画面へ遷移してしまいます。
お知恵を貸していただけないでしょうか。
ちなみに下記のようなスクリプトを書きました。

-----------------------------------------------
<script language="JavaScript1.2">
<!--
function chk_sub{
document.form.hdnChkFlg.value="1";
window.document.form.submit();
}
//-->
</script>

<if form.hdnChkFlg="1">
<form method="post">
<else>
<form action="next.htm" method="post">
<end if>

<input type="radio" name="chkSitei" checked onclick="return chk_sub value="1">aaa</input>

<input type="hidden" name="hdnChkFlg" value="">

<input type="submit" value="次へ">
</form>

宜しくお願いいたします。

A 回答 (4件)

Javascript で action って設定できますよ。

試していないんですけど、こんな感じ。

function submit_by_radio() {
document.form.action = "自分のURL";
document.form.submit();
}
    • good
    • 0
この回答へのお礼

こんばんは。回答ありがとうございます。
完璧です。
簡単なことだったんですね・・。
お恥ずかしいです。
この方法で解決できました。どうもありがとうございました。

お礼日時:2001/12/12 23:38

こんにちはsunnysさん、xruzです。


とりあえずテンプレートです。
なにかありましたら補足要求をお願いします。

<html>
<head>
<title>submit</title>
</head>
<script language="javascript">
<!--
function frmSubmit() {
var errFlag=true;
// チェックとか処理とかをします
if(errFlag==false) {
// alert("Err"); // エラー処理かな
return;
}
if(confirm("Send Ok?")) {
// document.frm.target="main"; // 表示先の変更
// document.frm.action="hoge.asp"; // リンク先の変更。ここをifで条件分け?
document.frm.submit();
} else {
// this.location.href="jump.cgi"; // キャンセルした場合のリンク先
}
}
//-->
</script>
<body>

<form method="post" action="" name="frm" target="_self">

<input type="button" value="send" onclick="frmSubmit();">
</form>

</body>
</html>

がんばってくださいね(~:~i
    • good
    • 0
この回答へのお礼

こんばんは。回答ありがとうございます。
エラー処理の仕方など、勉強になりました。
参考にさせていただきます。助かりました。
まだまだ勉強不足な為また質問させていただくことがあるかと思いますので、その時はまたよろしくお願い致します。
ありがとうございました。

お礼日時:2001/12/12 23:42

1番の方が言われているように、質問の例では動かないと思います


書き方はいろいろあるとは思いますが、サンプルを書いときます。

<html>
<head>
<script type="text/javascript">
<!--
function setpage(name) {
if(name=="") return false;
document.frm.action=name;
return true;
}
//-->
</script>
</head>
<body>
<form name="frm" action="next.html" method="post">
<input type="radio" name="rd" value="1" onclick="if(setpage('this.html')) {document.frm.submit();}">Radio Button1<br>
<input type="radio" name="rd" value="2" onclick="if(setpage('this.html')) {document.frm.submit();}">Radio Button2<br>
<input type="submit" name="bt" value="Button">
</form>
</body>
</html>
    • good
    • 0
この回答へのお礼

こんばんは。回答どうもありがとうございます。
私はJavaScriptはほとんどわからないのですが、色々な方法があるんですね。
勉強になります。何かの時には参考にさせていただきます。
どうもありがとうございました。

お礼日時:2001/12/12 23:40

ええと、私の勘違いや知識が足りないだけだったら済まないのですが、


</script>でスクリプト終了後に普通のHTMLで記述してますよね?HTMLでは<if>などというタグは無かったと言う風に条件分岐などは出来なかったと記憶していますが?
HTMLはあくまで表記言語だと捕らえているので、プログラムなどの処理が必要な場合はCGIを呼び出して使ったりした方が確実ではないでしょうか?
補足、などありましたらまた考えさせて頂きます。
    • good
    • 0
この回答へのお礼

こんばんわ。回答ありがとうございます。
おっしゃる通り、HTMLには<if>なんてタグは無いと思います。
実際はCGIを呼び出しているのですが、ここに全部書くとわかりにくくなると思い、
何をやっているのかの意味さえわかればいいかな、と思って<if>・・・と書いたのでした。
でも混乱させてしまっただけのようで、どうもすみませんでした。
また、何かあればまたよろしくお願い致します。
どうもありがとうございました。

お礼日時:2001/12/12 23:35

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q
の中に さらに
があるときのSUBMITボタンについて

今、

<FORM ACTION="aaa.asp" METHOD="POST" Name="form1">
<input type="SUBMIT" value="ボタン1">

<FORM ACTION="bbb.asp" METHOD="POST" Name="form2">
<input type="SUBMIT" value="ボタン2">
</FORM>

</FORM>


としていて、ボタン2を押すとbbb.aspに
飛んでほしいのでに、aaa.aspに飛んでしまいます。
こういう場合どのようにすればよいのでしょうか?

それぞれのボタンは hidden の値をそれぞれの
フォームの中の値を渡したいので
どうしてもSubmitがいいのです。

Aベストアンサー

No.4の回答者_Leoですが、分かりにくかったと思いますので、
全ソースのサンプルを記載しますので、参考にして下さい。
No.6のyou111111さんと同じく、JavaScriptを使用しています。
下記をそのまま、新規のhtmlにコピペで使用できますよよヨ。
本来のサイトが使用しているテキストボックス名は'MT'です。
-------------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN">
<!---gooはEUCキャラクタを使っています--->
<html>

<head>
<title>SAMPLE</title>
<meta http-equiv="Content-Type" content="text/html;charset=EUC-JP">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<script language="JavaScript" type="text/javascript">
<!--
//<クリックした時に実行される関数>
//*** 英和辞書
function func1(form){
document.form1.MT.value =form.TXT.value;
document.form1.submit();
}
//*** サーチ
function func2(form){
document.form2.MT.value = form.TXT.value;
document.form2.submit();
}
//-->
</script>
</head>

<body>
<!---実際に画面表示されるフォーム--->
<form>
<input type="text" name="TXT" value="Congratulation" size="40"><br>
<input type="button" onClick="func1(this.form)" value="Eng-JP">
<input type="button" onClick="func2(this.form)" value="goo">
</form>

<!-- 辞書用の仮想フォーム -->
<form name="form1" method="GET"
action="http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi">
<input type="hidden" name="MT">
<input type="hidden" name="sw" value="0">
</form>

<!--- サーチ用の仮想フォーム --->
<form name="form2" method="GET"
action="http://search.goo.ne.jp/web.jsp">
<input type="hidden" name="MT">
</form>

</body>
</html>

No.4の回答者_Leoですが、分かりにくかったと思いますので、
全ソースのサンプルを記載しますので、参考にして下さい。
No.6のyou111111さんと同じく、JavaScriptを使用しています。
下記をそのまま、新規のhtmlにコピペで使用できますよよヨ。
本来のサイトが使用しているテキストボックス名は'MT'です。
-------------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN">
<!---gooはEUCキャラクタを使っています--->
<html>

<head>
<title>SAM...続きを読む

Q

が場所をとってしまい表示スペースに空白ができてしまい配置が乱れてしまいます
どうしたら'hidden'のサイズが0であるかのように振舞わせることができるでしょうか?
テーブルの中に使っているのでテーブル枠が不必要に広がってしまいました
折り返しが起こりtrの高さが増えてしまったのです

Aベストアンサー

タグの前後で改行している(<br>タグではなくソース上で)、ということはありませんか?
もしそうなら削除してみてください。

Q~ の中に