文档库 最新最全的文档下载
当前位置:文档库 › ajaxSubmit上传文件

ajaxSubmit上传文件

form ajaxSubmit上传excel文件问题

摘要前端页面上传excel文件到后台解析后,将数据传送到前端页面进行展示。上传文件用jquery-form.js中的ajaxSubmit,在此过程中遇到的一些问题,将解决的方法记录下来,希望对以后有同样问题的朋友们有所帮助。如果有什么不对的地方请斧正。

用input file,但浏览器自带的选择文件A按钮很难看,与整体的页面风格不合,于是自己写了一个B按钮,将A按钮用opacity:0隐藏于B之外。然后为B按钮附上一个事件,当点击B时,B去触发A的点击事件,从而达到点击上传选择文件事件。再由A去触发ajaxSubmit事件。看似这个问题就这样被解决了。当提交测试时,浏览器兼容问题暴露出来了。主要是IE9版本以下,不允许这样的访问,报SCRIPT5:拒绝访问。

没办法得换成将A隐藏于B之上,当点击B时,实际是点的A。这样又带来了一个新问题:当移动到按钮上时,鼠标显示的是箭头,而不是手型,也没有鼠标移动上的效果。因为A覆盖了B的属性。给A加上cursor:poi nter样式,IE和火狐都认可,但谷歌不认可。幸好input file后面还有一个“未选择任何文件”的文本C。将C偏移将到B上,这时B按钮上的手型出来了,几个浏览器都OK,但又出现三个问题:

1.

IE10以下版本选择文件后,后端解析后返回到前端,IE出现打开、保存和取消按钮,就像下载一样。post返回的报文体是map,将其转换成s tring主OK了

2.

3.

A按钮偏移了,IE上当把鼠标移动到其上是还是显示的手型。解决办法,另写一个div去覆盖那部分。

4.

5.

鼠标移动到上面时,没有变色效果。解决办法:给input file标签添加o nMouseOver和onMouseOut事件去改变B的颜色。

6.

以上全是文字描述,以下贴出部分代码:

页面代码

浏览添加

浏览添加1

="mouseOver();" onMouseOut="mouseOut();" style="cursor: poin ter; width:184px;height: 31px; margin:-31px 0px 0px 0px; opacit y: 0;font-size: 21px;position: absolute; z-index: 2;">

js代码

function mouseOver(){

$("#emp_files").addClass("but-orange");//更改B的颜色

}

function mouseOut(){

$("#emp_files").removeClass("but-orange");

}

$("#signupForm").ajaxSubmit({//提交文件

type:"post",

dataType:"json",

url:"collectFee/uploadFile",

contentType: 'application/json;charset=UTF-8',

success:function(ret){}

});

其实,可以用ajaxfileupload.js插件,来完成以上动作。

相关文档