表单处理完毕后的Javascript事件

时间:2011-02-17 23:04:19

标签: javascript html forms iframe

当服务器完成处理表单时,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

将onSubmit附加到表单不是正确的事件,因为onSubmit在客户端尝试提交时发生。甚至还没有联系过服务器。

的onLoad

我将onLoad附加到目标iFrame。在我的情况下,它不会被解雇。我的服务器脚本设置标头以模拟m3u播放列表文件。 IFrame只在加载普通HTML页面时触发onLoad,而不是在弹出文件保存对话框时触发。即使我要在iFrame中加载纯HTML页面,onLoad也只会在用户第一次提交表单时触发。后续提交不会触发onLoad。

1 个答案:

答案 0 :(得分:1)

这没有任何意义,但是提交表单会重新加载带有新响应的页面。所以你的原始文档甚至不再存在,那么它怎么能运行回调呢?

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