例:AボタンとBボタンのsubmitボタンがあった場合、Aが押された場合とBが押された場合で処理を切り分ける。
条件:onSubmitで関数を呼び出すことが前提。
下記のように書いてみたのですが、どちらともAとして処理されます。
<script type="text/javascript">
<!--
function form_check(){
if(document.form_name.a_submit.value == "A"){ // Aボタン
window.alert('Aボタン');
}
else if(document.forme_name.b_submit.value == "B"){ //Bボタン
window.alert('Bボタン');
}
}
// -->
</script>
<form action="" method="post" name="form_name" onSubmit="form_check()">
<input name="a_submit" type="submit" value="A" />
<input name="b_submit" type="submit" value="B" />
</form>
<FORM NAME="form_name" ONSUBMIT="alert(form_name.submit.value)"> <INPUT TYPE=HIDDEN NAME="submit"> <INPUT TYPE=SUBMIT VALUE="A" ONCLICK="form_name.submit.value='A'"> <INPUT TYPE=SUBMIT VALUE="B" ONCLICK="form_name.submit.value='B'"> </FORM>
その手のことをやるときは大体こういう風にしています。
あとで仕様が変わってONSUBMITでなくほんとにactionで飛ぶようになっても
だいたい意図どおりになります。
HTMLの方で a_submit の値(value)として "A" を与えていますから、JavaScript の式 "document.form_name.a_submit.value == "A""は常に真になり、ご質問のような結果になってしまいます。
ご要望の動きをさせるには、以下のような書き方にする必要があります。
<script type="text/javascript"> <!-- function form_check(param){ if (param == 'A') { // Aボタン window.alert('Aボタン'); } else if(param == 'B') { //Bボタン window.alert('Bボタン'); } } // --> </script> <form action="" method="post" name="form_name"> <input type="button" value="A" onClick="form_check('A')" /> <input type="button" value="B" onClick="form_check('B')" /> </form>
各inputにonClick="form_check()を書くことで可能な事はわかるのですがformタグ内のonSubmit="form_check()で関数を実行させる事が条件です。
質問文に書かれている内容のままでできると思いますが。
else if(document.forme_name.b_submit.value == "B"){ //Bボタン
window.alert('Bボタン');
↓
else if(document.form_name.b_submit.value == "B"){ //Bボタン
window.alert('Bボタン');
申し訳ない、スペルミスしてましたね。
しかし、直しても結果は同じです。
こんな感じではどうでしょうか。
javascript
var submitA = false ; function form_check() { if (submitA) { // Aボタン window.alert('Aボタン') ; } else { //Bボタン window.alert('Bボタン') ; } }
フォーム
<form action="" method="post" name="form_name" onSubmit="form_check()"> <input name="a_submit" type="submit" onclick="submitA=true" value="A" /> <input name="b_submit" type="submit" value="B" />
ありがとうございます!
<FORM NAME="form_name" ONSUBMIT="alert(form_name.submit.value)"> <INPUT TYPE=HIDDEN NAME="submit"> <INPUT TYPE=SUBMIT VALUE="A" ONCLICK="form_name.submit.value='A'"> <INPUT TYPE=SUBMIT VALUE="B" ONCLICK="form_name.submit.value='B'"> </FORM>
その手のことをやるときは大体こういう風にしています。
あとで仕様が変わってONSUBMITでなくほんとにactionで飛ぶようになっても
だいたい意図どおりになります。
シンプルで良いですね、今回はこちらを使わせて頂きます。
勉強になりました。ありがとうございました。
シンプルで良いですね、今回はこちらを使わせて頂きます。
勉強になりました。ありがとうございました。