

javascriptでの二重送信防止(submitボタンの無効化)ができません。
【HTML】
<form name="fm" method="post" onsubmit="return dclk()">
<input type="submit" name="smt" value="送信" /><br />
</form>
【javascript】
function dclk(){
document.fm.smt.disabled = true;
return false;
}
これだと、サブミットボタンを押すとボタンが無効化され、その後、送信自体が
キャンセルさるのですが、これだと送信自体ができないので意味がありません。
これはなんとか意味はわかります。
そこでreturn falseを省くと送信されると同時にサブミットボタンが無効化されるのかな?と思ったら、
今度は送信されるようですが送信されたと同時にボタンが無効化されません。
どうすべきでしょうか?
ネットで調べたらいろいろな方法があるようで、上記のHTMLとjavascriptのコードで
なんとかならないでしょうか?
No.1ベストアンサー
- 回答日時:
送信する相手は誰ですか?
この場合、actionも指定されていませんし、javascript内で送信しているわけでもないので、自分自身(html?)に送信されています。
事実上再読み込みされるだけですね。
ボタンを無効にして、再読み込み(=自分自身に送信)。
再読み込みされたので、ボタンが有効(=初期状態)になります。
なんら不可思議な現象ではありません。
おそらく、元の参考にしたソースコードはonsubmitで呼ばれた関数内でAJAXで送信処理していたんじゃないでしょうか?
それだと、return false にする意味があります。
やりたい事は、サーバ上のCGIなどにデータを渡したいんですよね?
画面遷移せずに?→AJAXで送信する処理を関数dclk に追加する必要があります。
画面遷移をする?→formにactionを指定します。
二重送信防止と言いながら、そもそも何も送信していない事がワケの判らない事になっている原因ではないかと思いますよ。
No.2
- 回答日時:
送信ボタンが input[type=submit] に限定されるのなら、input[type=submit] のみを無効化すれば実装できるはずですが…。
http://jsfiddle.net/AF5YD/1/
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ボタン無しでフォーム内容送信
-
submitがおされた同時に JavaSc...
-
<form action="#">の意味とは?
-
ボタンが押されると同時にデー...
-
getElementsByNameについて
-
ラジオボタンによる内容の振り分け
-
【jQuery】input nameの文字列...
-
JSPとJavaScriptの連携について...
-
ラジオボタンのリセット方法
-
条件により、リンク先に画面遷...
-
ハイパーリンクを別ウインドウ...
-
プルダウンメニューのvalue値を...
-
HTMLで入力したものを変数で扱...
-
javascriptで画像の移動
-
一度しか押せないボタンについて
-
現在時刻を表示させたい!
-
jQueryを使った診断チェックシート
-
度胸試しのJavaScript
-
テキストフィールド未入力の場...
-
特定<table>内の<td>の色を変える
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
onclickをEnterキーでも行いたい
-
フォーム内で記入したクエリ送...
-
sessionの値でボタンを活性・非...
-
ボタンを押すとチェックボック...
-
確認ダイアログの出し方(JavaS...
-
jsで質問です。 ボタンが二つ存...
-
submitするとなぜか2度実行する
-
ボタン無しでフォーム内容送信
-
Javaのダイアログについて
-
VBSでブラウザ上のテキストボッ...
-
onClick="this.form.submit
-
メッセージボックスで「はい」...
-
VBScript
-
formに色をつけたい
-
onclickで2個指定するには?
-
Comfirm応答の後処理
-
ボタンが押されると同時にデー...
-
別ファイルの共通関数をHTMLで...
-
複数のsubmitによって送信する...
-
フォームに入力された値をリン...
おすすめ情報