之前用ifiame提交form表单做上传文件,没有写博,这几天又需要做个下载,所以又把上次的代码拔出来。
其实上传下载的有很多插件的,不过不太喜欢太依赖于插件。不多说
首先准备html
<form id="formFile" name="formFile" method="post" action="../Handler/upfile.ashx" target="frameFile" enctype="multipart/form-data"> </form> <iframe id='frameFile' name='frameFile' style="display:none" ></iframe>
一个form一个Iframe form有个属性是target 这个target类似于<a>标签的target:
target属性:
_blank ---------- 新开窗口
_self ----------- 自身
_top ------------ 主框架
_parent --------- 父框架
自定义名字 ----- 出现于框架结构,将会在该名称的框架内打开链接
我们把target名字写成Iframe name属性的名字,那么这个form表单的提交会发生在Iframe里面
$("#formFile").unbind(); $("#formFile").bind("submit", function () { if(true) {return true};
else{return false} }) $("#formFile").submit();
注意上面的submit事件是提交form表单之前的事件,如果这个事件的的返回值是true那么执行以下操作,false 则阻止表单提交!
JQ 的submit事件是加在form表单上的,如果submit有参数(方法)的话,那么会给他绑个以上的事件,如果没参数那么提交表单!
最重要的地方来了,我们如何知道表单提交成功或失败呢?
我们可以用ifaime的onload事件来监测
$("#frameFile").load(function () { var response = JSON.parse($(document.getElementById('frameFile').contentWindow.document.body).text()); if (response.result=="True") { } else if (response.result == "False") { } })