2012-07-26 96 views
3

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

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

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

您正在使用'jQuery'来触发'click'事件吗? – Andreas 2012-07-26 07:44:39

+0

是的,会影响代码吗? – Kiel 2012-07-26 07:46:22

+0

这将使它更容易 - 这就是全部:) – Andreas 2012-07-26 10:22:28

回答

5

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

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

相关问题