1度クリックしたボタンを無効にするには?
[上に]
[前に]
[次に]
まき
[E-Mail]
1998/11/20(金) 10:45:49
buttonをクリックされると、POSTでデータを受信し結果を表示するページを作成しています。
しかし、結果の表示が遅い場合、ユーザが何度もボタンをクリックし、同じデータが何度も
送信されてしまいます。
そこで、buttonを1度クリックすると、そのボタンを無効にする方法を知りたいのですが
どなたか教えて下さい。
お願いいたします。
mura
1998/11/20(金) 14:07:41
JavaScriptが有効という前提であれば、<HEAD>〜</HEAD>間に
<SCRIPT LANGUAGE=JavaScript>
<!--
var called=0;
// -->
</SCRIPT>
というのを入れて、
<FORM METHOD=post ACTION="送り先"> というのを
<FORM METHOD=post ACTION="送り先" onSubmit="return !called++;"> にすればいいです。
(submit関数でなくsubmitボタン<INPUT TYPE=submit>を使っている場合の話です)
#returnの後ろってだいぶシンプルにしましたが、この書き方で問題ないのかな?
#NNではOKみたいですが…。
100%確実かどうか自信はないですが、もう少し手軽な方法で
<FORM METHOD=post ACTION="送り先"> というのを
<FORM METHOD=post ACTION="送り先"
onSubmit="return confirm(確認のためもう1度OKボタンを押して下さい);">
にするという手もあります。(上の<SCRIPT>〜</SCRIPT>は必要ありません。)
mura
1998/11/20(金) 14:15:08
> onSubmit="return confirm(確認のためもう1度OKボタンを押して下さい);"
メッセージはシングルクォーテーションで囲ってください。(^^;)
まき
[E-Mail]
1998/11/20(金) 14:41:04
どうもありがとうございました。
Netscapeでは、成功しました。でも、、IEでは、だめでした。
お聞きしたのいのですが、
return !called++;
は、どういう意味なのでしょうか?
まき
1998/11/20(金) 15:03:54
すいません、先ほどの質問「return !called++;は、どういう意味なのでしょうか? 」は、
分かりました。
とりあえず、onSubmitの return値を trueで実行、falseで実行しない
というふうになっているんですね。
でも、IEの方で、
<FORM METHOD=post ACTION="送り先" onSubmit="return false;">
として、submitボタンをクリックしても、データの送信を実行してします。
IEの場合、onSubmitにてどのような処理をすれば、実行しなくなるのでしょうか?
mura
[E-Mail]
1998/11/20(金) 23:00:35
IE3で私が書いたスクリプトを実行してみましたが、問題なく動くみたいです。
>submitボタンをクリックしても、データの送信を実行してします。
>IEの場合、onSubmitにてどのような処理をすれば、実行しなくなるのでしょうか?
<INPUT TYPE=submit>ではなくJavaScriptのsubmit()を実行した場合は
onSubmitで書いた部分は実行されない(送信されてしまう)んですが、そうじゃなくってですか?
IEはIE4をお使いなんでしょうか。(私はIE4を持ってないのでチェックできないですが…)
まき
1998/11/23(月) 12:34:59
[[解決]]
またまた、すいません。
マシンを起動し直して、やり直すとできました。
(IEでJavaScriptを実行すると、その内容はずっとキャッシュされるのでしょうか?
リロードして、ソースを確認したにも関わらず、JavaScriptの変更が有効になっていませんでした。
何がおかしいのだろうか?こんなことがあるのかなぁ...)
まあでも、いろいろ、書きましたが、無事成功です。
ほんとに、どうもありがとうございました。
[上に]
[前に]
[次に]