Как предотвратить перезагрузку страницы после отправки кнопки AJAX с помощью специальной формы начальной загрузки bootstrap 4 - PullRequest
0 голосов
/ 12 мая 2019

Моя форма проверяется для каждого сценария с помощью начальной проверки формы (https://getbootstrap.com/docs/4.3/components/forms/#custom-styles), и мои предупреждающие сообщения прекрасно отображаются после отправки, но только в течение доли секунды с момента перезагрузки сайта. Я не хочу, чтобы сайт перезагрузка. Это только должно показать мое маленькое предупреждение.

Я почти уверен, что это связано с отсутствующим или неправильным параметром "false" или "return false". Но я не могу понять, как заставить его работать.

(function() {
  window.verifyRecaptchaCallback = function(response) {
    $("input[data-recaptcha]")
      .val(response)
      .trigger("change");
  };

  window.expiredRecaptchaCallback = function() {
    $("input[data-recaptcha]")
      .val("")
      .trigger("change");
  };
  ("use strict");
  window.addEventListener(
    "load",
    function() {
      var forms = document.getElementsByClassName("needs-validation");
      var url = "contactform.php";
      var validation = Array.prototype.filter.call(forms, function(form) {
        form.addEventListener(
          "submit",
          function(event) {
            if (form.checkValidity() === false) {
              event.preventDefault();
              event.stopPropagation();
              grecaptcha.reset();
            } else {
              var formdata = new FormData($("#contact-form").get(0));
              $.ajax({
                type: "POST",
                url: url,
                data: $(this).serialize(),
                success: function(data) {
                  var messageAlert = "alert-" + data.type;
                  var messageText = data.message;

                  var alertBox =
                    '<div class="alert ' +
                    messageAlert +
                    '" role="alert">' +
                    messageText +
                    "</div>";
                  if (messageAlert && messageText) {
                    $("#contact-form")
                      .find(".messages")
                      .html(alertBox);
                    $("#contact-form")[0].reset();
                    grecaptcha.reset();
                  }
                }
              });
              return false;
            }
            form.classList.add("was-validated");
          },
          false
        );
      });
    },
    false
  );
})(); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...