ボタンの連打対策

ボタン要素が連打できてしまうとF5クラッシュのような問題が起こる可能性がある。
ただただ、ボタンクリック時にdisabledを設定し、submit時に解除でいければそれでいいが、
それでは上手くいかなかった事象があったので、残しておく。


概要は以下の通り
初期表示時 ボタンのdisabledを解除
ボタン押下時 ボタンのdisabledを設定
ブラウザバック時 ボタンのdisabledを解除

// 初期表示
document.getElementById('btn').disabled = false;
// ボタン押下時
document.getElementById('btn').addEventListener('click', () => {
  // ボタンをdisabledにする(連打対策)
  document.getElementById('btn').disabled = true;
  document.getElementById('form').submit();
});
// ブラウザバック時
window.onpageshow = function(){
  // 検索ボタンのdisabledを解除(連打対策)
  document.getElementById('btn').disabled = false;
};