Formに複数あるSubmitボタンを識別するには
[上に]
[前に]
[次に]
TOKAI
1999/08/26(木) 18:41:03
こんにちは。
IE3.02でフォームに複数のSubmitボタンを配置しています。
このフォームの「OnSubmit」時に
どのボタンが押されたのか判断して、
Submitをキャンセルしたいのですが、
どのボタンがおされたかの判別方法がわかりません。
お分かりに方がいらっしゃったら
アドバイスよろしくおねがいします。
Tmb
1999/08/26(木) 18:51:53
何のために一つのフォームに複数のsubmitを置く必要があるのでしょう?
本当にそうしなければなりませんか?
複数のフォームに分割したり、本来ならbuttonを使っていいものにまで
submitを使ってませんか?
まずその部分を見直した方がいいと思いますが。
一応、方法としてはボタンのタイプをsubmitではなくbuttonにして、
onClick時にJavascriptからsubmit([そのform].submit)すればいいと
思います。
葉月
1999/08/26(木) 19:37:40
<form action="hoge.cgi">
<input type=submit name="submit1" value="登録">
<input type=submit name="submit2" value="変更">
</form>
とかして
hoge.cgiで
if ($FORM('submit1')){
print "登録されました";
} elsif ($FORM('submit2')){
print "変更されました";
}
などとしたら、どうでしょうか?
TOKAI
1999/08/27(金) 01:46:24
レスありがとうございます。
葉月さん、残念ながら今回はクライアント側のJavaScriptで
処理したかったので・・・・・
Tmbさん、Submitを2つ配置したのは、それぞれエラーチェックの後、
フォームのデータを同じCGIに送りたかったからです。
ただ、2つのボタンそれぞれでエラーチェックの内容が違うので、
(共通部分もたくさんあります)ひとつのFunctionで、Formの
Onsubmit時に押されたSubmitボタンがわからないかな〜と思ったからです。
その後、少し調べて、ButtonにしてOnclick時にForm.Submit()とすればよいと知りましたが、なぜかIE3.02ではエラーというか動かないので困ってます。書式がわるのかもしれないので
教えていただいたSubmit(form.submit)も試してみたいと思います。
Tmb
1999/08/27(金) 09:26:24
あ,いや,私の意図してたのもForm.submit()です。
書き方がまずくてすみませんでした。
とほほのリファレンスではIE3にも対応してるようなのですが・・・。
ただ,submit()は大文字不可なので,そこを確認して戴ければ。
[上に]
[前に]
[次に]