我正在实施“无法使用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
});
我会感激任何帮助!