jQuery清空input file文件域的解决方案

来源:互联网 发布:淘宝网店学校 编辑:程序博客网 时间:2024/06/05 02:47

在对一个文件域(input type=”file”)使用了验证后,我们总会希望把文件域中的值给清空了(否则错误的文件仍然会被提交),而在IE中,安全设置的原因,是不允许更改文件域的值的(也就是不能使用val(“”)) 。jquery监控file文件传事件,在ie8下只能使用一次

前段代码

<form id="uploadform" action= "###"  method="post" enctype="multipart/form-data"><input type="file"  name= "excelFile" id="excelFile" class= "upload-input" ></form>

js中获取file文件change事件

$(“.upload-input”).live(“change”,function(){
//执行代码
}

通过live绑定change事件,在ie8中只能执行一次,开始以为是jquery文件上传,控件出现问题,后来调试发现,并不是控件的原因,而是file文件本身的问题,在google和ie10下change值都可以获取得到,就是ie8下不能第二次触发,百度上说是因为ie浏览器本身的安全性所致的,解决方法,每次执行完处理后,把file控件,添加上不同的属性,ie8下就可以运行了

var fileCount = 0;$(".upload-input").live("change",function(){       fileCount++;      //执行代码    $(".upload-input").replaceWith("<input type='file'  name= 'excelFile' id='excelFile' class= 'upload-input' title='" + fileCount + "'>");}
1 0
原创粉丝点击