不使用Ajax,如何实现表单提交不刷新页面?

目前,我想到的是使用<iframe>,如果有其他的方式,后续再补。
举个栗子:
在表单上传文件的时候必须设置enctype="multipart/form-data"表示表单既有文本数据,又有文件等二进制数据。但是使用用Ajax没有enctype="multipart/form-data",所以不能直接上传文件,所以采用FormData对象包含数据上传。
这里我们不使用Ajax,直接提交表单,添加一个隐藏得iframe,将form表单的target指向这个iframe来阻止刷新并且上传文件。

<form method="POST" action="./upload.php" enctype="multipart/form-data" target='ifr' id="form1"><label for="name">name:</label><input type="text" id="name" name="name"/><br/><input type="file" name="file" ><input type="submit" value="提交">
</form>

接着,我们要获取返回值

var iframe=document.getElementById("ifr");iframe.onload= function () {var bodycontent=iframe.contentDocument.body.innerHTML;console.log(bodycontent);//处理获取到的内容;}

这样的话基本上可以模拟ajax的操作,实现无刷新提交表单。 完整代码:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<form method="POST" action="./upload.php" enctype="multipart/form-data" target='ifr' id="form1"><label for="name">name:</label><input type="text" id="name" name="name"/><br/><input type="file" name="file" ><input type="submit" value="提交">
</form>
<iframe name='ifr' id="ifr" style='display: none;'></iframe>
<script>
var iframe=document.getElementById("ifr");iframe.onload= function () {var bodycontent=iframe.contentDocument.body.innerHTML;console.log(bodycontent);//处理获取到的内容;}</script>
</body>
</html>
//php代码<?phpecho "name:".$_POST['name'].";filename:".$_FILES['file']['name'];

转载于:https://www.cnblogs.com/bluey/p/6255372.html

不使用Ajax,如何实现表单提交不刷新页面相关推荐

  1. vue 添加完数据后刷新页面_vue form 表单提交后刷新页面的方法

    最近做的项目中,有增删改表格功能,在操作后需要实时更新页面数据.下面可以这样解决. 1.在methods中 定义好一个初始化渲染实例. 例如 lnitializationData(){//初始化页面数 ...

  2. php阻止form提交表单提交,防止表单提交时刷新页面-阻止form表单的默认提交行为...

    最近在写 ajax 提交的时候遇到一个问题,在执行 ajax 提交之后,浏览器页面自动刷新了,主要是没有 由于form 表单的默认提交行为.一下是几种阻止 form 表单默认提交行为的方式. 1.使用 ...

  3. form表单提交不刷新页面的方法

    方法1:给form表单加onsubmit事件,值为return false; <form action="" method="post"  οnsubmi ...

  4. ajax 模拟表单提交,Ajax模拟Form表单提交,含多种数据上传

    ---恢复内容开始--- Ajax提交表单.使用FormData提交表单数据和上传的文件(这里的后台使用C#获取,你可以使用Java一样获取) 有时候前台的数据提交到后台,不想使用form表单上传,希 ...

  5. ajax异步实现表单的无刷新验证

    在 实现ajax异步实现表单的无刷新验证之前我们先要了解什么是异步什么是同步 "同步模式"就是上一段的模式,后一个任务等待前一个任务结束,然后再执行,程序的执行顺序与任务的排列顺序 ...

  6. php提交后刷新父页面,jquery – php ajax表单提交没有刷新父页面

    我有一些问题的ajax表单提交 $("#send").on("click", function() { $.ajax({ type: "POST&qu ...

  7. AJAX 实现form表单提交

    1.使用Ajax实现异步操作,点击登录按钮后,即触发form表单的提交事件,数据传输至后端 JSP: <script type="text/javascript" src=& ...

  8. html表单提交后显示,javascript – 在表单提交后在页面上显示消息

    我有一个包含2个字段的表单(对于此示例),我使用 JavaScript验证,如果字段包含数据,则表单将在用户单击"提交"按钮时提交.我在表单标签中使用iframe将输出发送到同一页 ...

  9. Extjs6关于Ajax和form表单提交以及store请求session超时的处理方法

    对于Store的处理 每个store配置的时候,配上load监听,加载时处理: usrStore : {model : 'App.model.Usr',autoLoad : false,proxy : ...

最新文章

  1. 节能信标组雌雄双煞 - 来自于洛阳理工学院信标组的车模
  2. 数据列过滤条件常用处理
  3. 我开的慕课《机器学习》突破了1万人,回答几个问题
  4. 在HTML中使用javascript (js高级程序设计)
  5. html 控制文字的标签,html里面有一个控制文字滚动的标签marquee,比较有用。
  6. 3d模型多怎么优化_3D打印人像模型是怎么制作出来的呢?
  7. nginx支持php5,配置nginx支持php
  8. python写csv文件按升序排列_用python给csv里的数据排序的具体代码
  9. Silverlight5 RC调用Win32API
  10. java取html中的table_htmlunit 操作table表格(一)
  11. java 连续等_java操作JSON文件实现连续插入、添加等
  12. STM32 高速定时器配置为PWM使用细节
  13. 物业管理系统(C语言)
  14. 基于STM32构建EtherCAT主站(SOEM方案)2
  15. unicode转gbk python_使用python实现GBK转unicode码查询表
  16. QTTabBar——Windows多功能标签软件
  17. linux磁带机找不到,如何在Linux下安装磁带机
  18. [GIS热点] 3S技术集成-新技术革命下集成模式
  19. Image2icon for Mac(icns图标转换制作工具)
  20. 【CSDN】【自用】CSDN操作

热门文章

  1. 【HDU - 6118】度度熊的交易计划(最小费用可行流,网络流费用流变形 )
  2. 【HYSBZ - 1192】鬼谷子的钱袋(水题,二进制)
  3. 搜索页面html代码怎么写,页内搜索功能源代码
  4. php set_timeout,和 JS 一样的 php setTimeout 函数
  5. java poi读取word中附件_Java POI导入word, 带图片
  6. 编程题【System类】计算一千万个数添加到集合的时间
  7. linux c 调用python_C程序调用Python脚本
  8. leetcode204. 计数质数(vip题)
  9. (十一)深入浅出TCPIP之TCP粘包问题
  10. 《数据结构上机实验(C语言实现)》笔记(2 / 12):线性表