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

在对一个文件域(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 + "'>");
}
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hongc93

感谢鼓励 继续航行

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值