Помогите с кодом плиз

12
D2
На сайте с 09.12.2012
Offline
23
740

Приветствую, уважаемые форумчане!

Возникла небольшая трудность. Есть форма обратной связи, где при клике по кнопке "отправить" мы получаем на этой же странице сообщение "Ваше письмо отправлено". Стоит задача, что помимо вывода сообщение об успешной отправке открывалось еще и всплывающее окно. Пробовал средствами js, но получается, что js срабатывает, всплывающее окно появляется, а вот письмо не отправляется. Попробовал погуглить, нашел решение с setTimeout, но как правильно применить к моему случаю не соображу.

Код кнопки (проблема выделена красным):

<input type="submit" value="Отправить" class="form" onclick="document.getElementById('wind').style.display='block'; return false;">

Код всплывающего окна:

<div id="wind">
Содержание всплывающего окна.
<button type="button" value="закрыть" onclick="document.getElementById('wind').style.display='none'; return false;">
закрыть</button>
</div>
maldivec
На сайте с 04.11.2008
Offline
160
#1

Конечно у вас не будет ничего отправляться. Вы же обрубаете выполненние click через "return false". Соответственно срабатывает только показ попапа. Дальше браузер ничего не делает.

У вас разве через ajax форма отправляется, чтобы тут же подтверждение показывать?

Мож у вас там на jquery обработчик формы какой-то есть, а вы тут городите непонятно что )

D2
На сайте с 09.12.2012
Offline
23
#2

это форма плагина Contact Form 7 для wp

maldivec
На сайте с 04.11.2008
Offline
160
#3

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

У вас форма ajax-ом улетает. Вам надо не событие отправки или клика отлавливать. А событие получения ответа, типа "все ок, форма отправлена."

Иначе у вас попап будет и при ошибочной отправке открываться. Или вообще при любом клике.

---------- Добавлено 20.05.2014 в 17:47 ----------

А вообще, вы в гугл то смотрели?

Юзайте вот это, например, если с программированием проблемы - http://wordpress.org/plugins/contact-form-7-response-colorbox-popup/

D2
На сайте с 09.12.2012
Offline
23
#4

maldivec, благодарю за подсказку, но этот вариант не очень подходит, в моем случае больше подошло бы решение с onclick

maldivec
На сайте с 04.11.2008
Offline
160
#5
danny2:
в моем случае больше подошло бы решение с onclick

Невозможно у вас решение через onclick ))

Вот рази интереса уберите просто return false; из вашего кода, а потом отправьте незаполненную форму.

Попробуйте поковырять этот плагин и вместо его окна показывать свое.

siv1987
На сайте с 02.04.2009
Offline
427
#6

Либо onclick (а лучше наверное onsubmit) + аякс запрос + показ всплывающего окна после завершения запроса.

либо без onclick с показом окна после отправки формы

D2
На сайте с 09.12.2012
Offline
23
#7

siv1987, мне любой вариант подойдет, лишь бы окно всплывало и письмо отправлялось

siv1987
На сайте с 02.04.2009
Offline
427
#8

Как пример, и на jquery


<form action="" id="feedback" method="POST">
<input type="submit" value="Отправить" class="form">
</form>

<script>
$('#feedback').submit(function(){
$.post($(this).attr('action'), $(this).serialize(), function(data){
$('#wind').css('display', 'block');
});

return false;
});
</script>

Можно и какой нибудь прелоадер повесить пока идет запрос

maldivec
На сайте с 04.11.2008
Offline
160
#9

siv1987, ну там же плагин Contact Form 7. Ну куда еще один POST?

Там и так все на ajax и рулиться, и валидируется, и отправляется, и сообщения показываются ))

siv1987
На сайте с 02.04.2009
Offline
427
#10
maldivec:
Там и так все на ajax и рулиться, и валидируется, и отправляется, и сообщения показываются ))

Не знаю, не пользовался. Показал пример для обычной формы

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий