Цитата:
Код выполняется запускается загрузки DOM? |
maxg5, не обратил внимание на ссылку в первом посту.
jQuery(function(){
jQuery('form.wpcf7-form').submit(function(e){
e.preventDefault();
jQuery.ajax({
type: 'POST',
url: $ajax_url,
data:{
name: $name_value,
email: $email_value,
message: $message_value,
subject: $subject_value,
task: 'sendmail'
},
beforeSend: function(data) {
jQuery('#submit').before('');
},
success: function(data) {
jQuery('.loading').fadeOut(function() {
jQuery(this).remove();
}); //прячется gif-ка какая-нибудь
setTimeout(function() {
jQuery('.emodal-overlay').click();//Скрываю модальное окно
}, 2000); // здесь закрывается модальное окно через 3 секунды
},
complete: function(data) {
$form.each(function() {
this.reset(); // или так очищается форма методом .reset()
});
},
});
});
});
|
Nexus,
Спасибо! Все работает. Но видимо есть какая то несовместимость ajax и WordPress. Не пойму как решить проблему. Окно закрывается даже если форма не была отправлена. Т.е. если есть не заполненные поля. Как мне кажется часть кода не работает. Консоль ругается на эту строку и выдает ошибку - Uncaught ReferenceError: form is not defined:
form.each(function() {
Я прогугил, не совсем понял как решить проблему. |
Заменил строку:
form.each(function() {
на строку
jQuery("form").each(function() {
Ошибка исчезла из консоли. Но окно так же закрывается если форма не было отправлена. |
maxg5, замените опцию, передаваемую методу ajax jQ
success:function(data){
try{
jQuery('.loading').fadeOut(function() {
jQuery(this).remove();
}); //прячется gif-ка какая-нибудь
if(typeof data=='string')
data=JSON.parse(data);
if(!!data.status && data.status=='validation_failed')
return;
setTimeout(function() {
jQuery('.emodal-overlay').click();//Скрываю модальное окно
}, 2000); // здесь закрывается модальное окно через 2 секунды
}catch(e){
console.error(e);
}
}
|
| Часовой пояс GMT +3, время: 04:06. |