Я реализую обходной путь для проблемы «невозможно загрузить файлы с помощью AJAX» (короче говоря, форма нацелена на iframe, и я хочу, чтобы jQuery затем захватывал содержимое iframe и обрабатывал его).
На данный момент у меня есть обработчик отправки, который вызывается при отправке любой формы.Он определяет, есть ли в форме поле для загрузки файла, и если он есть, он связывает себя и вызывает submit ().К сожалению, submit () на самом деле не запускается, пока ПОСЛЕ пользовательского обработчика не вернет false'd.Таким образом:
$('form').livequery('submit.custom', function() {
if ($(this).has('input[type=file]').length != 0) {
$(this).unbind('submit.custom');
$('body').append('<div id="file_iframe"></div>');
$('#file_iframe').append('<iframe name="postframe" id="postframe" class="hidden" src="" />');
$(this).attr("target", "postframe");
$(this).submit(); // <-- Doesn't trigger until after 'return false;'
}
return false;
});
Это означает, что я не могу обработать данные в iframe.Вместо этого я думал о связывании нового пользовательского обработчика в текущем пользовательском обработчике (еще не запутался?), Который затем (предположительно) был бы тем, что было запущено после того, как текущий обработчик возвращает false - но мне понадобится этот новый обработчик для запуска значения по умолчаниюотправить действие до того, как продолжить процесс.Есть ли способ сделать это или как-то иначе обойти проблему, о которой вы можете подумать?
$('form').submit(function() {
// Do something to trigger default action, ie actually post the form
// Then do some other bits and pieces
});
Буду благодарен за любую помощь!