Моя форма проверяется для каждого сценария с помощью начальной проверки формы (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
);
})();