after_click.css
//submitボタンの二重禁止
//全てのformのsubmitイベントの発生時に、formに含まれるsubmitボタンを無効化する。
window.onload = function() {
var forms = document.forms; // 存在するフォームを取得する
for (var i = 0; i < forms.length; i++) {
var form = forms[i];
Event.observe(form, 'submit', AfterClick);
}
}
var AfterClick = function(event) {
var form = event.target; // イベントの発生元であるフォームのオブジェクトを取得
var elements = Form.getInputs(form, 'submit'); // フォームにあるsubmitを全て取得
elements.each ( function(element, idx) {
element.disabled = true; // submitを全て無効にする
});
}
Prototype.jsが必須です。
情報の入力、ファイルを送信する時など、submitボタンのクリックの直後にsubmitを無効にして二重投稿を禁止するJavaScriptです。
一応、IE6やFirefoxでの動作は確認してます。
フォームが複数存在する場合は、AfterClickでもう一度「var forms = document.forms;」とかでフォーム全体のsubmitを取得するなりすれば、可能じゃないかと思います。