使用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 事件,有数据就会获取。

相关推荐
LCFliu1 小时前
13-鸿蒙开发中的综合实战:华为登录界面
前端·华为·harmonyos·鸿蒙·鸿蒙系统
weixin_516875652 小时前
vue3 父子组件传参
前端·javascript·vue.js
gqkmiss2 小时前
Chrome 130 版本新特性& Chrome 130 版本发行说明
前端·chrome·chromeos·chrome 130
龙哥说跨境2 小时前
浏览器内核版本更新:Chrome 130✔
前端·javascript·chrome
浏览器爱好者2 小时前
Chrome与夸克的安全性对比
前端·chrome
浏览器爱好者2 小时前
Chrome与夸克谁更节省系统资源
前端·chrome
Gauss松鼠会2 小时前
GaussDB Ustore存储引擎解读
java·前端·数据库·gaussdb
敏编程2 小时前
网页前端开发之HTML入门篇:表格标签 table
前端·html
&活在当下&2 小时前
js 将文件 url 地址转成 Blob 文件流并下载
前端·javascript·vue.js
shix .2 小时前
vue3中setup的作用是什么?
前端·javascript·vue.js