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

同じ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で質問しましょう!