jQuery:暂停表单默认操作

jQuery:暂停表单默认操作,jquery,forms,file,upload,progress,Jquery,Forms,File,Upload,Progress,我目前正在使用PHP uploadprogress扩展处理表单上传的进度条。我在这里学习了一个教程,一切都如示例所示: 然而,在本例中,表单以iframe为目标。接收调用的PHP脚本检查数据并确保其全部有效等,如果成功则重定向,如果失败则重新加载页面并突出显示错误 因此。。。我想如果我拿了 target="upload-frame" 。。。让窗体像正常一样运行并完成它所做的事情 然而,现在没有了target或iframe(我也从javascript中删除了它),用于循环更新进度条的javasc

我目前正在使用PHP uploadprogress扩展处理表单上传的进度条。我在这里学习了一个教程,一切都如示例所示:

然而,在本例中,表单以iframe为目标。接收调用的PHP脚本检查数据并确保其全部有效等,如果成功则重定向,如果失败则重新加载页面并突出显示错误

因此。。。我想如果我拿了

target="upload-frame"
。。。让窗体像正常一样运行并完成它所做的事情

然而,现在没有了target或iframe(我也从javascript中删除了它),用于循环更新进度条的javascript函数似乎无法从getprogress()php函数中获取任何数据

我可以手动访问它,信息就在那里


我假设在提交表单时,默认情况下,由于浏览器在等待文件上载时正在有效地尝试重定向,因此无法在页面上进行其他调用。有人知道在文件上传完成之前暂停重定向行为的方法吗?

我找到的解决方案是继续使用iframe作为表单的目标。然后,当上传完成时,我会对iframe的内容进行一些检查

首先,我使用jQuery检查#upload框架的内容,查看它是否包含重定向页面或包含错误的同一页面,如下所示:

$('#upload-frame').contents().find('.errors').size();
如果错误大小大于0,则我知道发生了问题,需要向用户显示。因此,我做了以下身体更换:

var html = $('#upload-frame').contents().find('body').html();
$('body').html(html);
如果没有错误,我只需重定向到预期页面,如下所示:

window.location = "finished.php";

我找到的解决方案是继续使用iframe作为表单的目标。然后,当上传完成时,我会对iframe的内容进行一些检查

首先,我使用jQuery检查#upload框架的内容,查看它是否包含重定向页面或包含错误的同一页面,如下所示:

$('#upload-frame').contents().find('.errors').size();
如果错误大小大于0,则我知道发生了问题,需要向用户显示。因此,我做了以下身体更换:

var html = $('#upload-frame').contents().find('body').html();
$('body').html(html);
如果没有错误,我只需重定向到预期页面,如下所示:

window.location = "finished.php";

嗯,我认为你能真正完成“ajax”文件上传的唯一方法是使用iframe hack。如果内存服务器不能正常工作,因为我不认为jquery ajax实际上可以发布文件数据。嗯,我认为可以真正实现“ajax”文件上传的唯一方法是使用iframe hack。如果使用内存服务器,它就不能正常工作,因为我认为jQueryAjax实际上不能发布文件数据。