0
我正在實現一個解決方法,'不能上傳文件使用AJAX'的問題(簡而言之,表單目標的iframe,我想jQuery然後抓住內容的iframe並處理它)。觸發jQuery事件處理程序中的默認操作之前進一步處理
目前,我有一個提交處理程序,每當提交任何表單時都會調用它。它確定表單中是否有文件上傳字段,如果有,則解除綁定並調用submit()。不幸的是,直到自定義處理函數返回false後,submit()纔會被實際觸發。因此:
$('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
});
我很感激任何幫助!
我可以看到吸引力,但我儘量避免使用Flash,如果可能的話......感謝您的建議,都一樣。 – narnianUK 2011-01-28 11:42:08