Загрузка файла AjaxSubmit - Попытка получить ответ $ (document) .ready () для запуска - PullRequest
0 голосов
/ 21 мая 2010

Я использую плагин jquery form (http://malsup.com/jquery/form/) для загрузки файла через ajax, который обрабатывается в фоновом режиме.

Загрузка работает правильно, и я использую ASP.Net MVC для возврата частичного представления, содержащего вызов $ (document) .ready, чтобы установить «таймер» для проверки состояния обработки файла загрузки. Когда я возвращаю частичное представление, которое содержит блок скрипта с вызовом $ (document) .ready, оно никогда не запускается, поэтому «таймер» для проверки состояния загрузки никогда не запускается.

Когда я делаю это с помощью обычного вызова $ .post (без загрузки), функция корректно срабатывает после загрузки HTML в DOM. Есть ли что-то еще, что мне нужно сделать при вызове функции ajaxSubmit, чтобы это сработало?

Просто пример кода:

$('form').live('submit', function () {
                $(this).ajaxSubmit({                   
                    success: function (data) {                        
                        $('#statusDiv').html(data);                        
                    }
                });               
                return false;
            });

1 Ответ

1 голос
/ 21 мая 2010

Может ли ваша подпрограмма загрузки частичного представления ASP.Net MVC запустить процедуру обратного вызова? Вы можете попытаться отслеживать привязку пользовательского события, используя .live() в обработчике ready() основного документа. Тогда .trigger('custom_event') в вашем частичном просмотре обратного вызова. Что-то вроде:

$(document).ready( function(){
    $('container_for_partial_view').live('custom_event', function(){
        set_timer_and_do_stuff()
    }
})

... и при частичной загрузке через ajax:

$('container_for_partial_view etc etc').trigger('custom_event')
...