javascript - 在 Internet Explorer 中动态创建文件输入

标签 javascript internet-explorer file-upload cross-browser

单击我的自定义按钮后,下面的代码会动态创建一个文件输入,生成一个名称为 photo[] 且 ID 为 photo'x'(x 作为变量)的文件输入。除了全能的 IE 之外,该代码在所有浏览器上都能正常工作。在 IE 中,我可以单击我的自定义上传按钮添加一个文件,当我提交表单时,文件输入将被清除。它将提交表单,但文件输入将为空白。但它适用于其他浏览器。

这是一个错误吗?还是安全的东西?如果是,我该如何解决这个问题?

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++;
}

最佳答案

IE的问题,javascript创建的input[type=file]不能通过form提交。

我的解决方案是在页面中制作一组隐藏的 input[type=file] 元素,并在需要时使它们可见。

关于javascript - 在 Internet Explorer 中动态创建文件输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11664504/

相关文章:

html - IE7 : Nested inline elements are causing parent to act like block

javascript - jquery ajax 在 str.replace 后不工作

javascript - Google 路线在 Internet Explorer 9 和 10 中不显示 map

node.js - Nodejs fileupload、multer 与 express-fileupload,使用哪个?

ruby-on-rails - 回形针在更新时删除现有附件

javascript - javascript入门

javascript - 使用 JavaScript 制作轮播

javascript - 使用 jquery ajax 和 FormData 跟踪文件上传的 ajax 发布进度

javascript - 从用户服务中的 firestore 返回用户数据返回 null

javascript - 没有使用 webpack 加载的 React 图标