现在来对比一下ajax与隐藏form提交的利与弊。
1.隐藏form提交,更新数据完成后,需要转到一个空白页面再对原页面进行提交后处理;ajax则不用,可以直接返回原页面进行提交后的处理。可见ajax可以比隐藏form提交少增加一个页面。
2.ajax出于安全性考虑,不能对文件进行操作,所以就不能通过ajax来实现文件上传,而通过隐藏form提交则可以实现这个功能,所以这就是目前用隐藏form提交的主要用途。
现在接下来讲述如何通过隐藏form来实现文件上传
1)首先定义一个用于填写表单内容的form
<form name="form1"></form>
2)接着定义一个用于提交的form
<form name="form2" target="myIframe"> //用于指定提交返回的页面显示在这个隐藏的iframe中
<iframe name="myIframe" style="display:none"></iframe> //用于存放提交返回后的空白页面
<div id="formInner" style="display:none"></div> //用于获取form1的html内容,获得form1的表单元素
</form>
3)在form1提交时,进行如下javascript处理
var formInner= document.getElementById("formInner");
formInner.innerHTML = form1.innerHTML; //复制form1的html代码
form2.action = form1.action;
form2.submit();
4)提交后,进入后台处理,后台处理完成后,需要返回一个空白页面blank.jsp,这个页面是在隐藏的iframe中生成的,所以可以通过parent对象对原页面进行操作。
比如原页面定义了一个updatePageFromSubmit(),则在blank.jsp页面中可以通过parent.updatePageFromSubmit()来调用进行提交返回后的处理
先看效果完整代码在底部 因为录屏软件的原因动画看着有点迟钝其实是动画很顺畅的...
随着Windows10 21H2逐步转入测试,大量新变化也开始如约而至。在刚刚发布的Windo...
在开发过程中,经常会碰到一些业务场景,需要以完全模糊匹配的方式查找数据,就...
2021年4月全国招收程序员456577人。2021年4月全国程序员平均工资14596元工资中位...
最近太忙了,自动来到rjxy后,不晓得怎么回事,忙的都没时间更博了。 昨天还有个...
本文实例为大家分享了javascript全局自定义鼠标右键菜单的具体代码,供大家参考...
咱们来看看JavaScript中都有哪些操作正则的方法。 RegExp RegExp 是正则表达式的...
最近在工作中用到了 Hbase 这个数据库,也顺便做了关于 Hbase 的知识记录来分享...
近2年Docker非常的火热,各位开发者恨不得把所有的应用、软件都部署在Docker容器...
主机正常启动显示器无信号解决办法记录。 又搬家了主机启动之后闪红灯显示器无信...