フォーム送信の2重を一括で防止するJavaScrpt
これを書いておけばおけなはず。
(※formのsubmitイベントの衝突/前後は考慮していまっせん。)
document.querySelectorAll('form').forEach(function(form){
    form.addEventListener('submit',function(e){
        if(form.dataset.isSubmit){
            e.preventDefault();
            return;
        }
        form.dataset.isSubmit = '1';
        e.currentTarget.querySelectorAll('button,input[type="submit"],input[type="image"]').forEach(function(el){
            el.style.pointerEvents = 'none';
            el.style.opacity = '0.7';
        });
    });
});
- 基本ブロック、送信ボタン類のCSS pointer-events: noneにして押せなくする。(ついでに透明度さげて押せない感をアピール
- 入力フィールドでエンターを連打するツワモノがいるので、送信時にデータセット data-is-submitを追加してフラグが立っていれば、送信しない。
