处理表单后的Javascript事件

处理表单后的Javascript事件,javascript,html,forms,iframe,Javascript,Html,Forms,Iframe,服务器完成表单处理后,javascript如何注册回调以运行?这是我的特殊设置: <form id="savePlaylistForm" name="savePlaylistForm" target="savePlaylistIFrame" method="post" action="<?=base_url()?>index.php/savePlaylist"> <input type="hid

服务器完成表单处理后,javascript如何注册回调以运行?这是我的特殊设置:

<form 
    id="savePlaylistForm" 
    name="savePlaylistForm" 
    target="savePlaylistIFrame"
    method="post"
    action="<?=base_url()?>index.php/savePlaylist">
    <input 
        type="hidden" 
        id="savePlaylistEntire"
        name="savePlaylistEntire" />
</form>
<iframe
    id="savePlaylistIFrame"
    name="savePlaylistIFrame"
    style="display: none">
</iframe>

但是这没有任何意义,提交表单会用新的响应重新加载页面。因此,您的原始文档将不再存在,那么它如何运行回调呢


您只需附加一个onSubmit处理程序,该处理程序取消默认提交操作(返回false),并通过进行Ajax调用复制默认浏览器提交。然后,您就可以附加一个响应回调(通过监听onReadyStateChange,或使用更高级别的东西,如jQuery)。

提交表单不会刷新整个页面。这是一个就地表单提交。我调用
$('saveplayliform').submit()
,服务器响应的目标是iFrame。这不能用Ajax复制。Ajax无法为模拟文件的PHP输出弹出文件保存对话框。我不知道代码会如何查找此对话框,但如果您使用
XMLHttpRequest
对象(
xhr
)提交数据,您应该能够将事件绑定到
onreadystatechange
事件。在这里,您应该能够使用
xhr.getResponseHeader('Content-Type')
或其他方法查询返回的头。如果触发
onreadystatechange
事件并且
readyState==4
,则可能甚至不需要询问。