gpt4 book ai didi

javascript - 为什么选择多个文件在 chrome 浏览器上不起作用?

转载 作者:行者123 更新时间:2023-11-28 01:47:37 24 4
gpt4 key购买 nike

以下 js 代码适用于 html5 选择的多个文件 在多次选择同名文件后不适用于 chrome 浏览器。

对于 EX: 选择文件 admin.png 进行 2 次或以上串联。它只对第一次发出警报。

DEMO(这不适用于 chrome 浏览器): http://jsfiddle.net/s9mt4/

function doClick() {
var el = document.getElementById("fileElem");
if (el) {
el.click();
}
}
function handleFiles(files) {
var d = document.getElementById("fileList");

var elementArray = document.getElementsByClassName("ImgNameUp");
var ReValue = true;
for (var i = 0; i < elementArray.length; ++i){
if(elementArray[i].innerHTML == files[0].name){
ReValue = false;
}
}
$('.ImgNameUp2').append('<div class="ImgNameUp">'+files[0].name+'</div>')
if (ReValue) {
alert('true');
} else {
alert('false');
}
}

我该怎么做,更改代码使其正常工作?

最佳答案

您的输入字段正在监听 onchange 事件以触发 javascript。

根据 W3C's document :

onchange event occurs when a control loses the input focus and its value has been modified since gaining focus

如果您尝试上传相同的文件,文件输入的值不会改变,因此不会触发该函数。我认为 Chrome 是唯一“正确”实现此功能的浏览器。

如果要上传两次,清空文件输入值:

function doClick() {
var el = document.getElementById("fileElem");
$(el).val(null); // <-- this line
if (el) {
el.click();
}
}

http://jsfiddle.net/s9mt4/2/

关于javascript - 为什么选择多个文件在 chrome 浏览器上不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21680519/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com