Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Dynamically creating file inputs in Internet Explorer

The code below dynamically creates a file input once my custom button is clicked generating a file input with a name of photo[] and an id of photo'x' (x as a variable). The code is working fine with all the browsers except the almighty IE. In IE i can click my custom upload button add a file and when i submit the form, the file input will be cleared. It will submit the form but the file input would be blank. But it works well with other browsers.

is this a bug? or a security thingy? if it is, how can i fix this problem?

var x = 0;
addFile = function(addFileButton) {
    var form = document.getElementById('form');
    var box = document.createElement('input');
    box.type = 'file';
    box.name = 'photo[]';
    box.id = 'photo' + x;
    box.style.cssText = 'position:absolute; top:-200px;';
    box.onchange = function() {
        checkFileDup(this.value, x - 1);
    };
    form.appendChild(box);
    jQuery("#photo" + x).trigger('click');
    x++;
}
like image 813
Kiel Avatar asked Dec 11 '25 12:12

Kiel


1 Answers

It is a issue of IE, input[type=file] created via javascript are not submitable through form.

My solution is to make a bundle of hidden input[type=file] elements in the page and make them visible when required.

like image 53
otakustay Avatar answered Dec 14 '25 13:12

otakustay



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!