Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.10.2017, 11:24
Профессор
Отправить личное сообщение для the_little Посмотреть профиль Найти все сообщения от the_little
 
Регистрация: 25.09.2017
Сообщений: 186

Не показывается окно при отправке формы
Всем привет.
Смотрел на сайте формы, понравилось как работает, решил повторить, и не получается.
Используется uniMail и magnific-popup.

uniMail отвечает за отправку формы на почту со всеми данными.
magnific-popup отвечает за создание всплывающих окон.

Делал по аналогии с тем что видел.
Сделал окно ЗАКАЗАТЬ ЗВОНОК.
Открывается.
Если нажать кнопку submit - должно появиться окно "СПАСИБО ЗА ОТПРАВКУ", но оно не появляется.

Скрипт вроде простой, не понимаю почему не работает...

<style> 
    .visible { 
        display:block!important; 
    }
    .hidden {
        display: none;
    }
</style>
<div class="hidden">
    <div id="popup-zvonok" class="popup-zvonok-content">
        <form class="formscript">
            <!-- СООБЩЕНИЕ ПОСЛЕ ОТПРАВКИ ФОРМЫ ЗВОНКА -->
            <div class="successform hidden">
ТУТ "СПАСИБО ЗА ОТПРАВКУ"
            </div>

            <!-- ФОРМА ЗВОНКА -->
            <div class="formvisible">
            ТУТ КОНТЕНТ ФОРМЫ ЗАКАЗА ЗВОНКА
                    <button class="orange-btn zvonok-btn" type="submit">Заказать звонок</button>
            </div>
        </form>
    </div>
</div>


//E-mail Ajax Send
//Documentation & Example: [url]https://github.com/agragregra/uniMail[/url]
$(".formscript").submit(function () { //Change
	var th = $(this);
	$.ajax({
		type: "POST",
		url: "php/mail.php", //Change
		data: th.serialize()
	}).done(function () {
		$(".successform").addClass("visible");
		$(".formvisible").addClass("hidden");
		setTimeout(function () {
			// Done Functions
			th.trigger("reset");
			$(".successform").removeClass("visible");
			$(".formvisible").removeClass("hidden");
			$.magnificPopup.close();
		}, 5000);
	});
	return false;
});
Ответить с цитированием
  #2 (permalink)  
Старый 03.10.2017, 11:39
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,145

Сообщение от the_little
должно появиться окно "СПАСИБО ЗА ОТПРАВКУ"
где в коде эта строка?
Ответить с цитированием
  #3 (permalink)  
Старый 03.10.2017, 11:42
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,145

the_little,
может
не $(".successform").addClass("visible"); а $(".successform").removeClass("hidden");
Ответить с цитированием
  #4 (permalink)  
Старый 03.10.2017, 12:00
Профессор
Отправить личное сообщение для the_little Посмотреть профиль Найти все сообщения от the_little
 
Регистрация: 25.09.2017
Сообщений: 186

Сообщение от рони Посмотреть сообщение
где в коде эта строка?
<div class="successform hidden">
ТУТ "СПАСИБО ЗА ОТПРАВКУ"
</div>

Сообщение от рони Посмотреть сообщение
the_little,
может
не $(".successform").addClass("visible"); а $(".successform").removeClass("hidden");
Не помогло. Я тоже смотрел на эту запись и не понимал почему наоборот))

Я сейчас попробовал вместо вывода .successform сделать просто вывод сообщения через Алерт, как это сделано в исходнике на гитхабе

$(".formscript").submit(function () { //Change
	var th = $(this);
	$.ajax({
		type: "POST",
		url: "./php/mail.php", //Change
		data: th.serialize()
	}).done(function() {
			alert("Thank you!");
			setTimeout(function() {
				// Done Functions
				th.trigger("reset");
			}, 1000);
	});
	return false;
});


Результат такой же. Ничего не происходит. И письмо на почту не отправляется. Как можно проверить вообще этот скрипт подключился или нет? МОжет его вынести из файла и просто в html вписать?
Ответить с цитированием
  #5 (permalink)  
Старый 03.10.2017, 12:32
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,145

the_little,
или не отвечает сервер, или страница перезагружается, либо надо тестировать на сервере в инете, а не локально.
Ответить с цитированием
  #6 (permalink)  
Старый 03.10.2017, 12:48
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,815

Сообщение от the_little
Как можно проверить вообще этот скрипт подключился или нет?
Перед отправкой формы открой панель разработчика, вкладка "Network" (фильтр XHR по желанию).
Далее нужно отправить форму и посмотреть в панели разработчика был ли запрос вообще отправлен или нет.
Для отладки вся необходимая информация там отображается.
Ответить с цитированием
  #7 (permalink)  
Старый 03.10.2017, 15:01
Профессор
Отправить личное сообщение для the_little Посмотреть профиль Найти все сообщения от the_little
 
Регистрация: 25.09.2017
Сообщений: 186

Сообщение от Nexus Посмотреть сообщение
Перед отправкой формы открой панель разработчика, вкладка "Network" (фильтр XHR по желанию).
Далее нужно отправить форму и посмотреть в панели разработчика был ли запрос вообще отправлен или нет.
Для отладки вся необходимая информация там отображается.
Ошибок накаких нет.

После нажатия на кнопку как я понял страница перезагружается.
В адресной строке появляется такая штука
"http://bank.emoney.blog/uslugi.php?project_name=PrimeBank&admin_email=nik. boost%40gmail.com&form_subject=%D0%97%D0%B0%D1%8F% D0%B2%D0%BA%D0%B0+%D0%BD%D0%B0+%D0%B7%D0%B2%D0%BE% D0%BD%D0%BE%D0%BA&phone=%2B7+%28111%29+111-11-11&name=%D0%9D%D0%B0%D0%B7%D0%B2%D0%B0%D0%BD%D0%B8 %D0%B5+%D0%BA%D0%BE%D0%BC%D0%BF%D0%B0%D0%BD%D0%B8% D0%B8"

По идее там все что было в форме
project_name
admin_email
form_subject
phone
name

только я не увидел никаких запросов куда либо.
Status - 200
Type - document
Initiator - Other

С фильтром XHR - пусто.
Ответить с цитированием
  #8 (permalink)  
Старый 03.10.2017, 15:03
Профессор
Отправить личное сообщение для the_little Посмотреть профиль Найти все сообщения от the_little
 
Регистрация: 25.09.2017
Сообщений: 186

Сообщение от рони Посмотреть сообщение
the_little,
или не отвечает сервер, или страница перезагружается, либо надо тестировать на сервере в инете, а не локально.
Проект на хостинге. Отправку там проверяю.
Ответить с цитированием
  #9 (permalink)  
Старый 03.10.2017, 15:04
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,815

the_little, попробуйте отключить стандартное поведение формы при сабмите.
$(".formscript").submit(function (e) {
e.preventDefault();
/*your code*/
});
Ответить с цитированием
  #10 (permalink)  
Старый 03.10.2017, 15:19
Профессор
Отправить личное сообщение для the_little Посмотреть профиль Найти все сообщения от the_little
 
Регистрация: 25.09.2017
Сообщений: 186

Сообщение от Nexus Посмотреть сообщение
the_little, попробуйте отключить стандартное поведение формы при сабмите.
$(".formscript").submit(function (e) {
e.preventDefault();
/*your code*/
});
Не помогло. В консоли нашел такую вот ошибку

<script>
window.onload= function() {
document.getElementById('toggler').onclick = function() { //На эту строчку ругается
openbox('box', this);
return false;
};
};

только этот скрипт не относится к этой форме либо отправке письма...
я его удалял, ни на что не влияет

Последний раз редактировалось the_little, 03.10.2017 в 15:24.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Всплывающее окно при уходе с сайта Igorsrt Элементы интерфейса 12 11.05.2017 15:01
С PHP-сессии в переменную jQuery - открываем модальное окно при значении: присвоено golopogos Events/DOM/Window 9 31.01.2015 11:16
Как средствами Ajax при нажатии на кнопку (ссылку) открывать окно, в котором будет ин Sergo jQuery 3 13.03.2014 10:17
При отправке формы Аяксом возникает ошибка Veterinar jQuery 0 19.01.2014 14:39
Генерация формы на стороне клиента при загрузки страницы Corey Общие вопросы Javascript 2 17.09.2013 17:13