kim singh
kim singh

Reputation: 87

Why multiple files selected doesn't work on chrome browser?

Following js code is for html5 multiple files selected [duplicate] that doesn't work for chrome browser, after selecting a file homonymous several times.

For EX: selecting file admin.png for 2 or up times tandem. It only alert for first times.

DEMO (This doesn't work only in chrome browser ): 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');
    }
}

what do i do,change in code that it working right?

Upvotes: 2

Views: 2111

Answers (1)

Richard Parnaby-King
Richard Parnaby-King

Reputation: 14862

Your input fields are listening to the onchange event to fire the javascript.

According to W3C's document:

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

if you try to upload the same file, the value of file input does not change so does not fire the function. I think Chrome is the only browser to implement this "correctly".

If you want to upload twice, clear file input value:

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

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

Upvotes: 1

Related Questions