Note: この記事は、3年以上前に書かれています。Webの進化は速い!情報の正確性は自己責任で判断してください。
送信ボタンの連打防止スクリプト。1フォーム複数ボタンに対応。
- ボタンクリック
- submitとimageとresetを無効にする(複数可)
- フォーム送信
...みたいな流れ。用途としては、主に処理待ち中に送信ボタンを連打することによって起こる、複数投稿を回避する目的で使う。
HTML
<form action="" method="get" onsubmit="return onceOnly(this);"><fieldset><legend>テストフォーム</legend><p><input type="text" name="test" value="" /><input type="submit" value="送信" /><input type="reset" value="取消" /><input type="image" src="" alt="画像" /></p></fieldset></form>
Script
var exec = false;function onceOnly(thform) {if(exec == true){ return false; };exec = true;obj = thform.getElementsByTagName('input');for (i=0; i < obj.length; i++) {if((obj[i].type) == 'submit' ||(obj[i].type) == 'image' ||(obj[i].type) == 'reset') {obj[i].disabled = true;};};alert('ボタン、無効になってるでしょ?');return true;};
memo: alertはチェック用なので、実用の際は外したほうが良いでしょう。
postscript: 改訂版をアップしました。
Note: スパム対策が面倒なので、コメント投稿を廃止しました。以前のコメントは残します。
ご意見・ご要望はtwitter@sigwygかはてブコメントにて。