一个模拟ajax异步上传文件例子
2015-08-13 11:45
615 查看
众说周知AJAX可以提交表单,但是如果表单里有文件的话ajax就无能为力了。这时就要借助iframe ,简单来说一下几步:
1.首先创建一个iframe 设施name属性为hide_iframe。
2.把设置form表单的target为iframe的name。
3.iframe注册onload事件用作表单提交成功后的回调函数。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>模拟AJAX无刷新上传文件</title>
</head>
<body>
<iframe name="hide_iframe" style="display:none;" onload="loadUserImgURL(this)" ></iframe>
<form id="userimgupload" action="UserinfoAction_upLoadUserImg.action" enctype="multipart/form-data" method="post" target="hide_iframe">
<input type="file" id="userImg" name="userImg" onchange="javascript:uploadImg()"/>
<button>提交</button>
</form>
</body>
<script type="text/javascript">
function loadUserImgURL(iframe){
var doc = iframe.contentDocument ? iframe.contentDocument: iframe.contentWindow.document;
var response;
try{
response = doc.getElementsByTagName("pre")[0].innerHTML;
} catch(err){
response = '';
}
if(response!=''){
var message=JSON.parse(response);
//TODO 业务逻辑
}
}
</script>
</html>
1.首先创建一个iframe 设施name属性为hide_iframe。
2.把设置form表单的target为iframe的name。
3.iframe注册onload事件用作表单提交成功后的回调函数。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>模拟AJAX无刷新上传文件</title>
</head>
<body>
<iframe name="hide_iframe" style="display:none;" onload="loadUserImgURL(this)" ></iframe>
<form id="userimgupload" action="UserinfoAction_upLoadUserImg.action" enctype="multipart/form-data" method="post" target="hide_iframe">
<input type="file" id="userImg" name="userImg" onchange="javascript:uploadImg()"/>
<button>提交</button>
</form>
</body>
<script type="text/javascript">
function loadUserImgURL(iframe){
var doc = iframe.contentDocument ? iframe.contentDocument: iframe.contentWindow.document;
var response;
try{
response = doc.getElementsByTagName("pre")[0].innerHTML;
} catch(err){
response = '';
}
if(response!=''){
var message=JSON.parse(response);
//TODO 业务逻辑
}
}
</script>
</html>
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- JavaScript拆分字符串时产生空字符的原因
- IE8开发人员工具教程(二)
- 在线用表单建立文件夹
- 在flex中执行一个javascript方法的简单方式
- Flex结合JavaScript读取本地路径的方法
- Jquery 表单取值赋值的一些基本操作
- PowerShell中执行Javascript的方法示例
- javascript asp教程第六课-- response方法
- javascript asp教程More About Recordsets
- javascript asp教程第十二课---session对象