javascript - javascript .onchange 在 IE Edge 第一次点击时不起作用
问题描述
我.onchange
只在 IE Edge 中遇到了一些问题。
对于上传文件,我有这个 html:
<div id="drop_file_zone" ondrop="upload_file(event)" ondragover="return false">
<div id="drag_upload_file">
<p>DROP FILE(S) HERE</p>
<p>or</p>
<p><input class="browse btn" type="button" value="Browse" onclick="file_explorer();"></p>
<input type="file" id="selectfile" name="upload" multiple>
</div>
</div>
的JavaScript:
var fileobj;
function file_explorer() {
document.getElementById('selectfile').click();
document.getElementById('selectfile').onchange = function() {
for (var i=0; i< this.files.length;i++){ // multiple files uploading
fileobj = document.getElementById('selectfile').files[i];
ajax_file_upload(fileobj);
}
};
}
会发生什么:仅在 IE Edge 中,我第一次打开资源管理器并浏览文件时,该文件未“选中”。当我再次打开资源管理器并选择另一个文件时,该文件被选中。
演示: https ://jsfiddle.net/ayw104L7/1/
您可以看到 IE Edge 第一次没有给出警告“文件选择”
解决方案
推荐阅读
- java - 在杰克逊中序列化/反序列化别名原语而没有太多样板
- dll - 当提供程序仅附带 xxx.lib 并且您使用的是 MinGW-w64 而不是 MSVC 时,如何链接到 xxx.dll?
- shapefile - 从 shapefile 边界生成随机点
- laravel - 如何在制造相同型号的工厂时使用型号 ID?
- javascript - 事件侦听器未在 DIV 中的第二个按钮上触发
- asp.net-core - await _context 中的错误:“无法通过表达式引用类型”
- assembly - 如何在 ASSEMBLY 中打印 PIC18f4520 LCD 显示屏上的信息
- ruby-on-rails - 什么是使用 Vue.js 组件在 Rails 中实现表单的干净、简单且推荐的方法
- python-3.x - Python在打印三个数字后将字符串插入列表
- java - 如何在 Java 中设置泛型超类的类型?