Javascriptでボタンのダブルクリックを抑制する

感想おまちしてます!

JavaScript 第6版

ダブルクリックによる2重投稿を防ぐために使用する。

isSubmittedフラグにより、クリックされたかどうかを判断し、 されていなければ、3秒(3000ミリ秒)待ってから、フラグを変更し、 trueを返す。ようは、1回目のクリックから3秒間はフラグがtrueの為、 2回目のクリックが無効になる。

スポンサーリンク

方法

フォームには以下のように。

onsubmit="return formSubmit()"

JavaScriptファイルは以下のように

// クリック判定フラグ
// falseの場合は、クリックされていないを意味する
var isSubmitted = false;

function formSubmit(){

// クリックされていないかどうか
if(!isSubmitted){

// フラグをtrueに変更する
// これにより1回目のクリックがまだ実行中の為、
// 2回目のクリックが無効となる
isSubmitted = true;

// 3000ミリ秒後にフラグをfalseに戻す
// 3000ミリ秒の間は、フラグがtrueの為、Submitできない
setTimeout(“resetIsSubmitted()”, 3000);

// Submitする
return true;
} else{
// Submitしない
return false;
}
}

function resetIsSubmitted(){
// フラグをfalseに戻す
isSubmitted = false;
}