Показать сообщение отдельно
  #1 (permalink)  
Старый 25.07.2017, 08:06
Новичок на форуме
Отправить личное сообщение для wfjs Посмотреть профиль Найти все сообщения от wfjs
 
Регистрация: 04.01.2016
Сообщений: 6

Пропадает форма после ajaxSucces
Добрый день товарищи программисты! Помогите разобраться с проблемой. Есть форма обратной связи, используется модальное окно fancybox, она через jquery ajax() отправляет данные на файл со скриптом. Все хорошо, данные отправляются, приходит ответ и выполняется то, что указано в свойстве jQuery.ajax succes. Но при этом также сама форма стает display: none. Как можно это предотвратить? Нужно сначала обработать ответ вывести сообщение, а потом пользователь исправляет данные, нажимает отправить и если все хорошо, форма стает display: none. Подскажите как то можно предотвратить скрытие формы несмотря на то, что пришел succes, но результат succes не тот, что нужен, а форма скрывается?

Блок с формой
<div id="feedback">
    <h2 class="feedback_header">Заказать <br/>обратный звонок</h2>
    <form id="f_contact" name="contact" action="#" method="post">
        <label for="f_name">Ваше имя:</label><br>
        <input type="text" id="f_name" class="f_input" name="f_name"><br>
        <label for="f_phone">Ваш телефон:</label><br>
        <input type="text" id="f_phone" class="f_input" name="f_phone"><br>
        <button id="f_send">Заказать звонок</button>
    </form>
<p style="text-align: center;"><strong class="f_msg"></strong></p>
</div>


Код jquery ajax
$(document).ready(function(){
    $(".modalbox").fancybox();
    $("#f_contact").submit(function(){ return false; });
    $("#f_send").on("click", function(){
if($("#f_name").val()!='empty' && $("#f_phone").val()!='empty')
        {
            jQuery.ajax({   
                url: "/ajax/form.php",
                type: "POST", 
                dataType: "json",
                data: "f_name="+$("#f_name").val()+"&f_phone="+$("#f_phone").val(),
                success: function(response) {
                    setTimeout("$(\".f_msg\").text(\"Запрос отправлен!\")", 600);
                    $("#f_contact").fadeOut("fast", function(){
                        setTimeout("$.fancybox.close()", 2500);
                    });
                    
                },
                error: function(req, text, error) { 
                    console.log(req);
                    console.log(text);
                    console.log(error);
                    $(".f_msg").text("Запрос не отправлен!");
                }
            });    
            
        } else {
            $(".f_msg").text("Заполните все поля!");    
        }
});
});
Ответить с цитированием