使用form表单的action提交并接收后端返回的消息

使用form表单的action提交表单是同步提交的方式,会跳转页面,所以无法获取后端返回来到消息。这样描述或许没有太大感觉,如果我要通过表单的方式上传文件,并接收后台返回来的响应数据;这样说是不是就感同深受了呢。

  1. 在form标签上添加一个 target 属性,属性值指向 <ifream></ifream> 标签的name 属性。target 属性也就是当表单提交后,会自动跳转到 target 对应的地址上。这里表示提交表单后,跳转到ifream 层。
  1. 添加一个 <ifream></ifream> 标签,并添加行内样式使其为不可见状态(dispaly: none)
  1. 接收响应消息的 js 如下

    //提交申请单后接收响应消息
    ("iframe[name=iframeContent]").on("load", function() { var responseText = ("iframe")[0].contentDocument.body.innerHTML;
    const jsonResponse = JSON.parse(responseText);
    if (jsonResponse.code == 0) {
    layer.open({
    title: '提示', icon: '1', content: jsonResponse.msg, time: 2000, end: function () {
    window.close(); // 关闭表单页面
    }
    });
    } else {
    layer.alert(jsonResponse.msg, {
    title: '申请失败', icon: 5, time: 5000
    });
    }
    });

整体流程就是:当提交表单后,会自动跳转到 <form> 标签内 target 属性值对应的地址上,即在 ifream 层,这样返回的结果就存在了 ifream 层。通过监听 ifream 层的 load 事件,ifream 加载完成就会触发 load 事件,有数据就会获取。

相关推荐
前端 贾公子5 分钟前
(catalog协议) == pnpm (5)
前端·javascript·react.js
JarvanMo9 分钟前
深度解析:如何彻底终结 Flutter 异步操作中的 BuildContext 崩溃?
前端
wxr061614 分钟前
部署Spring Boot项目+mysql并允许前端本地访问
前端·spring boot·mysql·持续部署
假装我不帅20 分钟前
jquery-validation使用
前端·javascript·jquery
怕浪猫25 分钟前
React从入门到出门第六章 事件代理机制与原生事件协同
前端·javascript·react.js
天府之绝28 分钟前
uniapp 中使用uview表单验证时,自定义扩展的表单,在改变时无法触发表单验证处理;
开发语言·前端·javascript·vue.js·uni-app
be or not to be30 分钟前
Html-CSS动画
前端·css·html
初恋叫萱萱35 分钟前
技术基石与职场进阶:构建从Web后端到高性能架构的完整知识图谱
前端·架构·知识图谱
木木木一39 分钟前
Rust学习记录--C9 错误处理
前端·学习·rust
局外人LZ40 分钟前
libsodium.js:web端与 Node.js 的现代加密工具集,构建前端安全加密体系
前端·javascript·node.js