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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hongc93/article/details/70058452

在对一个文件域(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 + "'>");
}

猜你喜欢

转载自blog.csdn.net/hongc93/article/details/70058452
今日推荐