input内容改变后,ie11中change事件执行两次的解决办法

在IE11中,当input文件类型元素的value被JS改变时,change事件会被触发两次,导致错误。解决办法是上传后移除并重新添加input元素,但这样会导致动态添加的元素失去事件监听。通过使用jQuery的live方法绑定事件,可以确保动态添加的input也能正确响应change事件,从而避免错误提示并支持多次上传。
摘要由CSDN通过智能技术生成

事情是这样的:

页面文件上传,代码如下:

<form id="noflashUpload" enctype="multipart/form-data" action="ajax/uploadDocument.do" method="post" style="margin-left:-80px;">
   <dl class="form-avatar">
       <dd>
        <span id="up_span" style="padding: 2px 5px 2px;border: 1px solid #C0C0C0;margin-bottom: 10px;border-radius: 2px;background: #DDDDDD;overflow: hidden;position: relative;cursor: pointer;*position: relative;">添加文件
<input type="file" id="otherfile" name="file" style="width:60px;opacity: 0;filter:alpha(opacity:0);zoom:1;font-size: 10px;position: absolute;top: 0;right: 0;cursor: pointer;"></span>
<p>支持PDF,DOC,DOCX,PPT,PPTX格式</p>
       </dd>
   </dl>
   </form>

为了能实现貌似一次上传多个文件的功能,上图这个input采取ajax提交,并且每次上传后要把input的值设为空,这样才能进行下一次上传:

$(document).ready(function(){
 $("#otherfile").change(function(){
 var filepath = $(this).val();
 var extStart=filepath.lastIndexOf(".");
 var ext=filepath.substring(extStart,filepath.length).toUpperCase();
 if(ext!=".PDF"&&ext!=".DOC"&&ext!=".DOCX"&&ext!=".PPT"&&ext!=".PPTX"){
 showError("文件限于pdf,doc,docx,ppt,pptx格式");
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值