TOP ▲ itcore TOPTIPSj_sub.php  タグ:javascript

Javascriptによるsubmit 2回押し防止 required有効 sleep | itcore 2021年

<script
  src="https://code.jquery.com/jquery-3.6.0.min.js"
  integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4="
  crossorigin="anonymous">
</script>
<script>
function j_sub(btn) {
  btn.disabled = true;
  // 隠しボタンをクリック
  $("input[name=submit1]").prop("disabled", false);
  $("input[name=submit1]").click(); // HTML5のrequiredを効かせる。
  // エラーのときは画面が遷移しないので3秒後にdisabledを解除する。
  const _sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
  await _sleep(3000);
  btn.disabled = false;
}
</script>
<input type=hidden name=mode value=go>
<input type=button value="送信" onclick="j_sub(this);">
<input type=submit name=submit1 style="display:none" disabled>