Закрыть FancyBox перед постом AJAX - PullRequest
0 голосов
/ 20 мая 2011

У меня следующий код. Я показываю пользователю fancybox, и он нажимает «Отправить» в форме. Я закрываю fancybox и показываю им обработку на странице и делаю запись AJAX с использованием JQuery.Но кое-что из того, что открывает fancybox, остается открытым до тех пор, пока не будет завершена публикация формы AJAX. Что создает путаницу для пользователя.

   function BeginProcess(){
       $.fancybox.close();
       $("#imgProcess").attr("src", "/admin/images/loading_animation.gif");
       $('#imgProcess').show();
       PostAJAXForm();
}

function PostForm(FormData){
               $.ajax({
                type: "POST",
                url: "process_image.jsp",
                data: FormData,
                contentType: "application/x-www-form-urlencoded",
                async: false,
                success: function(response) {
                    response = $.trim(response);
                    $('#imgProcess').delay(10000).hide();
                    return response;                    
                 },
                error: function(xhr, ajaxOptions, thrownError) {
                     alert("There was an error. Please undo image and perform action again. " );
                     $('#lblProcess').delay(5000).hide();
                     return;
                   }
                });
} 

Ответы [ 2 ]

1 голос
/ 11 июня 2011

Вот фрагмент:

var params = $(this).serialize();
var self = this;

$.ajax({
            type: 'POST',
            url: self.action,
            data: params,
            beforeSend: function(){
                    alert('Closing');
                    $.fancybox.close();
            },
            success: function(data){
                    alert('Finished processing form');
                    return false;
            },
            dataType: 'json'
    });

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

0 голосов
/ 20 мая 2011

Вам нужно добавить $.fancybox.close() в функцию Ajax's beforeSend.

http://api.jquery.com/jQuery.ajax/ http://api.jquery.com/ajaxSend/

Это тоже должно вам помочь http://snipplr.com/view/47979/close-a-fancybox-when-you-submit-a-form-with-ajax

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...