Отключить кнопку отправки при нажатии на Gravity Forms, когда AJAX включен?

Я использую гравитационные формы в wordpress и ставлю в очередь скрипт для отключения кнопки отправки после нажатия на каждую форму, потому что у моей команды были проблемы с двойной (тройной, четверной...) отправкой форм.

Базовый сценарий:

$(document).ready(function() {
  $('#gform input[type=submit]', this).on('click', () => {
    $('#gform input[type=submit]').prop('disabled', true);
  });
});

Он работает с формами, в которых AJAX не включен и формы не встроены. Однако когда я перехожу на страницу, где это так, она работает в первый раз, а затем, поскольку страница не обновляется, сценарий больше не применяется к ней волшебным образом и не отключает кнопку.

Я думал, что это будет запускаться каждый раз, когда нажимается кнопка, но, похоже, что-то работает неправильно.

Любые идеи были бы хорошы! :D


person jennasaurusrex    schedule 15.08.2019    source источник


Ответы (1)


Я смог добиться этого, добавив приведенный ниже JavaScript непосредственно в форму, используя блок HTML в конструкторе форм.

<script type="text/javascript">
if (document.querySelector(".gform_wrapper")) {
    const submitBtn = document.querySelectorAll("input[type='submit']")[0];
    submitBtn.addEventListener("click", () => {
      submitBtn.disabled = true;
    });
  }
</script>

Надеюсь это поможет.

person QMC    schedule 16.11.2019