Как запретить отправлять форму при заходе на сайт и обновлении старинцы?
Как запретить отправлять форму при заходе на сайт и обновлении старинцы?
Делал такую же форму на проекте, все работало. Сейчас при заходе на сайт или обновлении отправляет сразу.
|
1 |
<div class="popup__shadow"> <div class="cards__intro4"> <div class="container"> <div class="container"> <div class="popups__inner"> <div class="popup callme__popup"> <a class="close__popup">x</a> <h3>Перезвоните мне</h3> <p> Оставьте заявку и мы свяжемся с Вами в ближайшее время</p> <form id="form" name="form"> <input type="number" name="name" min="1" max="5000000.0" placeholder="Сумма" /> <!-- <input type="text" name="name" placeholder="Категория" >--> <select name="phone"> <option value="Леруа">Леруа</option> <option value="Бензин">Бензин</option> <option value="Пожрать">Пожрать</option> <option value="ТК">ТК</option> <option value="ТК">Ипотека</option> <option value="ТК">Ипотека</option> </select> <input type="submit" value="Отправить" > </form> </div> </div> </div> </div> </div> </div> |
|
1 |
/ Отправка заявки $(document).ready(function() { $('#form').submit(function() { // проверка на пустоту заполненных полей. Атрибут html5 — required не подходит (не поддерживается Safari) if (document.form.name.value == '' || document.form.phone.value == '' ) { valid = false; return valid; } $.ajax({ type: "POST", url: "mail.php", data: $(this).serialize() }).done(function() { $('.js-overlay-thank-you').fadeIn(); $(this).find('input').val(''); $('#form').trigger('reset'); }); return false; }); }); // Закрыть попап «спасибо» $('.js-close-thank-you').click(function() { // по клику на крестик $('.js-overlay-thank-you').fadeOut(); }); $(document).mouseup(function (e) { // по клику вне попапа var popup = $('.popup2'); if (e.target!=popup[0]&&popup.has(e.target).length === 0){ $('.js-overlay-thank-you').fadeOut(); } }); |
|
1 |
<?php $to = "greenyar76@gmail.com"; // емайл получателя данных из формы $tema = "Потрать денег и не ной"; // тема полученного емайла $message = "Сумма: ".$_POST['name']."<br>";//присвоить переменной значение, полученное из формы name=name $message .= "Категория: ".$_POST['phone']."<br>"; //полученное из формы name=phone $headers = 'MIME-Version: 1.0' . "rn"; // заголовок соответствует формату плюс символ перевода строки $headers .= 'Content-type: text/html; charset=utf-8' . "rn"; // указывает на тип посылаемого контента mail($to, $tema, $message, $headers); //отправляет получателю на емайл значения переменных $redirect = isset($_SERVER['HTTP_REFERER'])? $_SERVER['HTTP_REFERER']:'redirect-form.html'; header("Location: $redirect"); exit(); //редирект ?> |
Дополнительно:
Содержание
Ответы:
Вместо этого,
$('#form').submit(function() {
в вашем случае, должно быть это:
$('#form').on("submit", function() {
- Добрый день.
Не работает, при том что на этом сайте стоит точно такая же форма и она отрабатывает как надо (сам там же делал). По кнопке "забронировать".
- Просто "Не работает" - ни о чем не говорит мне. Вариантов почему именно может быть масса - даже просто из-за того, что кэш в браузере сидит. Нужен пример, тогда смогу помочь.
- mahmudchon, Добрый день.
А пример конкретно чего? Код html, js, php в описании.
- lakalov, ладно, что значит - не работает? форма также отправляется при посещении страницы, если указываем
$('#form').on("submit", function() {
, верно? - mahmudchon, да, все верно. Она отправляется при заходе и обновлении страницы.
- lakalov, ок, ладно, повторил Ваш пример на тестовой странице у себя.
https://pilorama37.ru/test.html
Все работает нормально, как и должно. Правда в приведенном у Вас JS коде есть ошибка.
/ Отправка заявкидолжно быть
// Отправка заявки - mahmudchon, значит дело со стороны хоста. Спасибо что протестили код)
- mahmudchon, скопировал криво, в исходнике все как должно быть
Для решения данной проблемы вы можете воспользоваться услугами фрилансеров. Мы выполним необходимую работу быстро и качественно.
Оставить комментарий Отменить
Ответы
- Есть ответ! к записи Как уменьшить масштаб меньше 100% в Windows 10 (22H2)
- Есть ответ! к записи Аналоги CloudFlare в России?
- Есть ответ! к записи Аналоги CloudFlare в России?
- Есть ответ! к записи Как называется человек, который дизайн придумает для сайта и сверстает его?
- Есть ответ! к записи Можно ли установить Яндекс.Диск на АльтЛинукс?
- Есть ответ! к записи Картинки мутные только на сафари, есть выход?
- Есть ответ! к записи Keenetic. Как настроить SSTP клиент с сертификатом?
- Есть ответ! к записи Чем заменить executor в aiogram 3?
Для того чтобы запретить отправку формы при заходе на сайт и обновлении страницы, можно использовать JavaScript. Вот пример кода, который можно добавить на страницу:
Этот код предотвращает отправку формы при нажатии на кнопку отправки и выводит сообщение при попытке обновления страницы. Пользователь будет предупрежден о потере данных, если он случайно попытается покинуть страницу.
Помните, что использование подобных методов может негативно повлиять на пользовательский опыт, поэтому стоит использовать их осторожно и только в случаях, когда это действительно необходимо.