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

来源:互联网 发布:java syslog4j 编辑:程序博客网 时间:2024/05/16 08:43

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

<form id="subId" action="doc/uploadTranslate"
enctype="multipart/form-data"
method="post">
<input type="hidden" id="from" name="from">
<input type="hidden" id="to" name="to">
<table>
<tr>
<div class="sc">
<a style="background:green;display:inline-block;background:white; position:relative; overflow:hidden;margin: 5px 20%;"> 
<input accept=".doc,.docx,.pdf" id="myfile" type="file" name="myfile"
onchange="changeFile();">
<img alt="极速翻译" src="/Translate/resources/image/xzwj.png">
</a>
</div>
</tr>
</table>
<div style="padding:5px;text-align:center;display: none;">
<a class="btn btn-primary"
href="#" id="sub" class="easyui-linkbutton">上传</a>
</div>
</form>

function changeFile(){
$('#sub').css('display','block');
var file = $("#myfile").val();
var pos=file.lastIndexOf("\\");
var fileName = file.substring(pos+1);
if (fileName.indexOf(".pdf") > 0) {
document.getElementsByClassName('file_type')[0].src = "/Translate/resources/image/PDF-L.png";
}else if(fileName.indexOf(".docx") > 0||fileName.indexOf(".doc") > 0){
document.getElementsByClassName('file_type')[0].src = "/Translate/resources/image/Word-L.png";
}else{
if(fileName.length>0){
toastr.error('请上传正确格式文件');
}
$("#myfile").val("");
$(".content_up_text").html("支持PDF,DOC,DOCX的格式,其他格式正在拼命开发中。");
$('#update_file').css('display','none');
$(".selectfile").css("display","block");
$(".file_type").css("display","none");
document.getElementsByClassName('content_buttom')[0].src = "/Translate/resources/image/jsfy1.png";
return;
}
$(".content_up_text").html(fileName);
$('#update_file').css('display','block');
$(".selectfile").css("display","none");
$(".file_type").css("display","block");
document.getElementsByClassName('content_buttom')[0].src = "/Translate/resources/image/jsfy2.png";
}


<input id="myfile">中onchange="changeFile();",每次选择文件会触发此函数,但在IE浏览器中,from表单提交后也会触发此函数,因为提交后<input id="myfile">中文件消失,changeFile同样触发。其他浏览器无此问题。可在changeFile函数中增加是否有文件的判断

阅读全文
0 0
原创粉丝点击