javascript - 检测 html 表单是否成功或错误

标签 javascript jquery

我正在使用jquery向我的后端提交一个post请求,该请求返回一个pdf。我想知道是否有一种方法可以检测后端的错误和成功响应。

我使用以下方法创建了表单:

form = $document.createElement("form")).attr({"method":"POST", "action":"myurl"});
$(document.createElement('input')).attr({'type': 'hidden', 'name': 'data', 'value': data}).appendTo(form);
form.appendTo( document.body ).submit()

如何更改此设置以在仍然使用表单提交的同时进行成功回调或错误回调,因为我知道这可以使用 $.ajax 并发送常规发布请求来完成。

最佳答案

有两种方法可以做到这一点:

  1. 使用 Ajax 提交帖子

  2. 使用 iframe,其中 iframe 返回一些调用父方法的 JavaScript 代码

对于第二个选择,您需要将表单的目标设置为 iframe 的名称:

form.target = myIframe.getAttribute( "name" );

然后它将被提交到该 iframe(您可以通过 JavaScript 创建并放入文档中)。

然后,iframe 应返回一个 HTML 页面,其中包含调用父框架方法的 javascript:

...include all the regular HTML code...
<script>
    window.parent.MyResponseHandler.response( "ok" );
</script>

在父框架中,您需要创建该处理程序:

var MyResponseHandler = {
    response: function(res) {
        alert( res );
    }
}

编辑:如果您想在回复时返回 PDF,可以通过两种方式执行此操作:

  1. 让响应 JavaScript 在新窗口中打开 PDF

  2. 如果它返回 PDF 作为页面数据,请使用服务器端代码在成功时返回 PDF - 这将导致它在浏览器中打开 - 或使用上面的代码返回错误。

关于javascript - 检测 html 表单是否成功或错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27868503/

相关文章:

javascript - 使用换行符和缩进重新格式化单行

javascript - 在 JavaScript 中动态创建 JSON 数组键

javascript - Angular 服务缓存

jquery - 对于类似的事情,使用 jquery Ui 小部件或 jquery 插件哪个更好?

javascript - 主干删除 View 和 DOM 节点

javascript - 使用ajax将行插入表(倒数第二个)

jquery-ui 框架图标上的悬停效果

javascript - 为什么 JavaScript 函数不创建 HTML 元素?

javascript - 在子行中显示数组项( react 表)

javascript - 如何使用 jquery 按顺序从多个元素移动文本?