我正在为“无法使用 AJAX 上传文件”问题实现一种解决方法(简而言之,表单以 iframe 为目标,我希望 jQuery 然后获取 iframe 的内容并处理它)。
目前,我有一个提交处理程序,每当提交任何表单时都会调用它。判断表单中是否有文件上传字段,如果有则解绑并调用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
});
我将不胜感激任何帮助!