对于web,一说到无刷新,第一个想到的就是Ajax。
不过这次是需要上传文件,Ajax也无能为力了。。因为Ajax是以字符串的形式与后台交互的。
本来找了几个JQuery的插件,但是由于这次页面上有多个form,而这些form也是用Ajax动态生成的,
于是像ajaxfileupload、jquery.form这些也都不好使了。。
无意间发现了一篇文章,使用iframe来模拟实现假的无刷新页面的提交,原来无刷新也可以这么实现。。!
方法概述:
1.在页面中做一个隐藏的iframe。
2.将form表单的target指向这个隐藏的iframe。(如果要上传文件,只能用post哦~)
3.至于form里面的内容,是要提交参数还是文件上传,该怎么写还怎么写~
后来又看了看ajaxfileupload,原来也是利用了新建临时的iframe来实现的~呵呵~
代码如下:
<script type="text/javascript"><!-- function changeform(btn){ var formnode = btn.parentNode; formnode.submit(); } // --></script> </head> <body> <form id="myForm" method="post" enctype="multipart/form-data" action="picfileUpload.action" target="hidden_frame"> eventname: <input type="text" name="eventname" /> File: <input type="file" name="myFile" id="myFile"/> <input type="button" value="click" οnclick="changeform(this)"/> </form> <iframe name='hidden_frame' id="hidden_frame" style="display:none" mce_style="display:none"></iframe> </body>
于是:
纵然是有N个form,那就尽情的target到那个隐藏的iframe中去吧~