2012-07-26 102 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]元素,並在需要時使它們可見。

相關問題