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

相关推荐
hh随便起个名6 小时前
力扣二叉树的三种遍历
javascript·数据结构·算法·leetcode
我是小路路呀7 小时前
element级联选择器:已选中一个二级节点,随后又点击了一个一级节点(仅浏览,未确认选择),此时下拉框失去焦点并关闭
javascript·vue.js·elementui
程序员爱钓鱼7 小时前
Node.js 编程实战:文件读写操作
前端·后端·node.js
PineappleCoder7 小时前
工程化必备!SVG 雪碧图的最佳实践:ID 引用 + 缓存友好,无需手动算坐标
前端·性能优化
JIngJaneIL7 小时前
基于springboot + vue古城景区管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot·后端
敲敲了个代码8 小时前
隐式类型转换:哈基米 == 猫 ? true :false
开发语言·前端·javascript·学习·面试·web
澄江静如练_8 小时前
列表渲染(v-for)
前端·javascript·vue.js
JustHappy8 小时前
「chrome extensions🛠️」我写了一个超级简单的浏览器插件Vue开发模板
前端·javascript·github
Loo国昌8 小时前
Vue 3 前端工程化:架构、核心原理与生产实践
前端·vue.js·架构