通信が遅いときにイラついても、「送信」ボタンを連打してはいけない……というのは常識だが、最初から送信ボタンを一回しかクリックできないようにしておけば、そもそも問題は起こらない。
onload = function () {
if (document.all) {
formList = document.all.tags("form");
} else if (document.getElementsByTagName) {
formList = document.getElementsByTagName("form");
} else {
return;
}
for (i = 0; i < formList.length; i++) {
formList[i].onsubmit = disableSubmit;
}
}
function disableSubmit () {
var elements = this.elements;
for (i = 0; i < elements.length; i++) {
if (elements[i].type == "submit") {
elements[i].disabled = true;
}
}
}
フォームが「送信」されたとき (onsubmit
) に、disableSubmit
が動くように onload
で設定しておく。送信ボタンが押されると、そのフォーム内にある submit ボタンが使えなくなる。
一つのフォームに複数の submit ボタンがある場合、あるいは submit ボタンでデータのやり取りをしていない場合には対応していない。