以下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');
}
}
我该怎么做,改变它正常工作的代码?
答案 0 :(得分:1)
您的输入字段正在侦听onchange
事件以触发javascript。
当控件丢失输入焦点及其时,会发生onchange事件 自获得焦点以来,价值已被修改
如果您尝试上传相同的文件,则文件输入的值不会更改,因此不会触发该函数。我认为Chrome是唯一能够“正确”实现此功能的浏览器。
如果要上传两次,请清除文件输入值:
function doClick() {
var el = document.getElementById("fileElem");
$(el).val(null); // <-- this line
if (el) {
el.click();
}
}