ich habe ein Kontaktformular:
HTML Code:
<form class="form-horizontal" id="ajax-contact" method="post" role="form" action="mailer.php"> ...abgekürzt <input id="submit" name="submit" type="submit" value="Absenden" class="btn btn-submit btn-lg btn-block"> </form>
Code:
(() => { const form = document.getElementById("ajax-contact"); const result = document.getElementById("contactResult"); // Set up an event listener for the contact form $(form).submit((event) => { // Stop the browser from submitting the form event.preventDefault(); // Serialize the form data const formData = $(form).serialize(); // Submit the form using AJAX $.ajax({ type: 'POST', url: $(form).attr('action'), data: formData }) .done((response) => { console.log("Kontaktformular wurde erfolgreich weggeschickt!"); // Clear the form const name = document.getElementById("name"); const email = document.getElementById("email"); const message = document.getElementById("message"); const elements = [name, email, message]; elements.forEach((el) => { el.value = ""; }); // Give user feedback result.style.display = ""; result.innerText = response; setTimeout(() => { $("#contactResult").fadeOut(); }, 3000); }) .fail((data) => { console.log(`Kontaktformular error: ${data}`); // Give user feedback result.classList.replace("alert-success", "alert-danger"); result.style.display = ""; result.innerText = data; setTimeout(() => { $("#contactResult").fadeOut(); }, 3000); }); }); });
Ich vermute den Fehler beim $(form).submit()...$(form)[0] bringt auch nichts.
Hat einer eine Idee oder fällt einem etwas auf?
Es kommt auf das $(form).submit() und auf das event.preventDefault() drauf an.
Ein
Code:
setTimeout(() => { }, 10000);
Debugger kann ich leider nicht setzen, um zu sehen was event ist.
Grüße
Benny