Цитата:
Код выполняется запускается загрузки 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, время: 00:45. |