Почему моя контактная форма AJAX не останется на той же странице? ⇐ Jquery
Почему моя контактная форма AJAX не останется на той же странице?
На моем сайте есть контактная форма, которую я создал более 5 лет назад. Я помню, что раньше он отображал сообщения об ошибках/успехе непосредственно на странице в div #form-messages, но теперь он меняет страницу на send.php с отображаемым неформатированным текстом вместо того, чтобы оставаться на странице контактной формы и выводить его там. , и я не могу хоть убей понять, почему. Разве event.preventDefault(); не должен препятствовать изменению страницы по умолчанию?
Вот соответствующий HTML-код:
Имя Электронная почта Сообщение Отправить Вот contact.js:
$(function() { // Получаем форму. var form = $('#ajax-contact'); // Получаем сообщения div. вар formMessages = $('#form-messages'); // Настраиваем прослушиватель событий для контактной формы. form.submit(функция(событие) { // Не позволяем браузеру отправить форму. событие.preventDefault(); // Сериализуем данные формы. вар formData = form.serialize(); // Отправляем форму с помощью AJAX. $.ajax({ тип: «ПОСТ», URL: form.attr('действие'), данные: данные формы, капча: grecaptcha.getResponse() }).done(функция(ответ) { // Убедитесь, что элемент div formMessages имеет класс успеха. formMessages.removeClass('ошибка'); formMessages.addClass('успех'); // Устанавливаем текст сообщения. if (data.responseText !== '') { formMessages.text(data.responseText); } еще { formMessages.text('Ой! Произошла ошибка, и ваше сообщение не удалось отправить.'); } // Очистка формы. $('#имя').val(''); $('#email').val(''); $('#message').val(''); }).fail(функция(данные) { // Убедитесь, что элемент div formMessages имеет класс error. formMessages.removeClass('успех'); formMessages.addClass('ошибка'); // Устанавливаем текст сообщения. if (data.responseText !== '') { formMessages.text(data.responseText); } еще { formMessages.text('Ой! Произошла ошибка, и ваше сообщение не удалось отправить.'); } }); }); }); А вот send.php:
На моем сайте есть контактная форма, которую я создал более 5 лет назад. Я помню, что раньше он отображал сообщения об ошибках/успехе непосредственно на странице в div #form-messages, но теперь он меняет страницу на send.php с отображаемым неформатированным текстом вместо того, чтобы оставаться на странице контактной формы и выводить его там. , и я не могу хоть убей понять, почему. Разве event.preventDefault(); не должен препятствовать изменению страницы по умолчанию?
Вот соответствующий HTML-код:
Имя Электронная почта Сообщение Отправить Вот contact.js:
$(function() { // Получаем форму. var form = $('#ajax-contact'); // Получаем сообщения div. вар formMessages = $('#form-messages'); // Настраиваем прослушиватель событий для контактной формы. form.submit(функция(событие) { // Не позволяем браузеру отправить форму. событие.preventDefault(); // Сериализуем данные формы. вар formData = form.serialize(); // Отправляем форму с помощью AJAX. $.ajax({ тип: «ПОСТ», URL: form.attr('действие'), данные: данные формы, капча: grecaptcha.getResponse() }).done(функция(ответ) { // Убедитесь, что элемент div formMessages имеет класс успеха. formMessages.removeClass('ошибка'); formMessages.addClass('успех'); // Устанавливаем текст сообщения. if (data.responseText !== '') { formMessages.text(data.responseText); } еще { formMessages.text('Ой! Произошла ошибка, и ваше сообщение не удалось отправить.'); } // Очистка формы. $('#имя').val(''); $('#email').val(''); $('#message').val(''); }).fail(функция(данные) { // Убедитесь, что элемент div formMessages имеет класс error. formMessages.removeClass('успех'); formMessages.addClass('ошибка'); // Устанавливаем текст сообщения. if (data.responseText !== '') { formMessages.text(data.responseText); } еще { formMessages.text('Ой! Произошла ошибка, и ваше сообщение не удалось отправить.'); } }); }); }); А вот send.php:
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение