![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?c9bd177)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_09.png?c9bd177)
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で質問しましょう!
似たような質問が見つかりました
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- JavaScript javascriptで移動ボタンを押した際に遷移するボタンを追記したい 1 2022/11/29 03:02
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- JavaScript javascriptで入力フォームが空欄の時にアラートによるエラーを出すコードを書いています。 2 2023/06/13 17:58
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- HTML・CSS 私の能力からして間違っていないような気がします。 4 2022/09/30 13:24
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
onclickで2個指定するには?
-
[JavaScript]ボタンを押下する...
-
return trueとreturn falseの用...
-
BackSpaceしたい(QNo.2734284の...
-
オブジェクト配列
-
チェックボックスで合計値を計...
-
onchange等のイベントハンドラ...
-
Acrobat Java Scriptについて教...
-
JavascriptからSQLへ繋ぎ方が分...
-
setIntervalの間隔を途中で変更...
-
jQuery テキストボックス読み取...
-
checkboxをクリックしてリロー...
-
チェックボックスのON/OFFに応...
-
プルダウン選択を変更すると、...
-
【診断テストの作り方】結果に...
-
テーブルの行数を可変長にした...
-
<JavaScript>tableタグを入力不...
-
JavaScriptを用いてテキストボ...
-
テーブル内のチェックボックス...
-
selectboxのoptionタグのvalue...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フォーム内で記入したクエリ送...
-
VBSでブラウザ上のテキストボッ...
-
ボタン2回押しを無効にしたい
-
ボタンを押すとチェックボック...
-
<form action="#">の意味とは?
-
confirmのOK・キャンセルを押し...
-
jsで質問です。 ボタンが二つ存...
-
submitするとなぜか2度実行する
-
onclickで2個指定するには?
-
sessionの値でボタンを活性・非...
-
onClick="this.form.submit
-
【掲示板の機能】投稿時にサイ...
-
メッセージボックスで「はい」...
-
一つのページで二つのFormを別...
-
VBScript
-
Javascriptで二重送信を防止し...
-
確認ダイアログの出し方(JavaS...
-
ホームページビルダーでメール...
-
HTAで、こんなボタンが作りたい。
-
送信フォームで送信ボタンをお...
おすすめ情報