submitボタン毎にチェックするには?
[上に]
[前に]
[次に]
あのんきい
1999/11/11(木) 18:25:38
フォームに入力された内容を「submitボタン押下時」に
JavaScriptでチェックしています
一つのフォーム(<FORM>〜</FORM>)内に一つのsubmitボタンしかない場合は
<FORM name="xxx" onSubmit="return (check(this));">
の様に、<FORM>タグ内からチェック用の関数を呼んでいます。
この関数の戻り値がtrueだったらそのまま送信され、falseだったら
送信されません
ここまでは良かったのですが…
「一つのフォーム内に複数のsubmitボタンがある場合、
submitボタンA押下時には、チェック用の関数を呼びたいが
submitボタンB押下時には、チェック用の関数を呼びたくない
というように処理を分けたい…」
以上のような処理ができずに困っています
試した方法は
1. 一つの場合と同様に<FORM>タグ内に、onSubmit〜を記述する
この場合A・Bどちらのボタンを押したときでも関数が呼ばれてしまう
→ 押されたボタンをJavaScriptで区別できる方法はないでしょうか?
2. submitボタンの方から関数を呼ぶ(onClickで…。onSubmitは駄目なようです)
この場合、戻り値がfalseであっても送信されてしまう
→ 戻り値によって送信/非送信の処理を分けることはできないでしょうか?
どなたか良い方法をご存じでしたら、よろしくお願い致します(._.)
Nobu3
[E-Mail]
[HomePage]
1999/11/11(木) 19:00:21
IE4,NN4(共にWin95)では、以下のような記述では大丈夫でしたけど・・・。
キャンセルするとちゃんとキャンセルされました。
<form action="hoge.cgi">
(ここには<input>がいっぱい)
<input type=submit value="no ask">
<input type=submit value="ask" onclick="return confirm('submit?')">
</form>
あのんきい
1999/11/11(木) 19:22:52
Nobu3さんありがとうございます
確かにreturn confirm('submit?')とした場合は、うまくいくのですが
confirmではなくて、自分で作成した関数を呼び
その戻り値(true/false)によって送信/非送信と処理を分けたいのです…
例えば、
<input type=submit value="ask" onclick="return check(document.MainForm)">
とした場合に送信/非送信を分けたい
ということです
(この場合、戻り値が何であれ送信されない!!)
ちなみに現在使用しているブラウザはIE5.0およびNC4.04です
Nobu3
1999/11/11(木) 19:36:24
あれ?そうですか?
function yesno(obj){
if(confirm('submit?')){
return true;
}else{
return false;
}
}
function yesno2(obj){
if(obj.elements[0].value==''){
return true;
}else{
return false;
}
}
こんなスクリプト二つで試してみましたが、結果は同じでした。何故でしょう?
IE4.01 NN4.04です。
呼出しは以下のようなものです。
<input type=submit value="no ask">
<input type=submit value="ask" onclick="return yesno2(this.form)">
Nobu3
1999/11/11(木) 20:08:40
[[解決]]
チェックをしている関数の中にバグがあるのではと思い、
よく確認したらバグがありました
(エラーではないようですが、意図しないところに";"が記述されていました)
そのバグのために、「return (true);」の処理が実行されなかったようです
Nobu3さん、どうもありがとうございました
あのんきい
1999/11/11(木) 20:09:37
済みません、前の発言の名前が「Nobu3」さんになっていますが
私の発言です
[上に]
[前に]
[次に]