2012-07-13 71 views
0

嗨,我有一個要求如下我有一個文件元素在一種形式這種形式包含很多 其他領域也所以我不能提交它,但在文件選擇後,我需要上傳那個 ,所以我用iframe創建了第二個表單。我無法將文件元素從一種形式複製到另一種形式,特別是在ie中,我嘗試使用cloneNode和appendChild都沒有任何建議。我真的被卡住了。複製HTML輸入文件元素從一種形式到另一種

<form name ="form1"> 
    <input type="file"/> 
</form> 

<form name="form2">  
<form> 
+0

爲什麼不使用fileuploadui js插件?它爲你做後臺上傳過程。 – 2012-07-13 08:14:15

+0

我已經創建了我自己的文件上傳組件,因此不能使用任何其他插件。任何簡單的方案。 – 2012-07-13 08:17:37

+0

您應該檢查propertychange的事件,並在其更改時將第一個表單提交到iframe。 – 2012-07-13 08:19:14

回答

0

看起來像cloneNode已允許克隆文件輸入。可能的碼可以如下:

<form name="form1"> 
    <input id="file1" type="file" onchange="copy_file_input()" /> 
</form> 
<form name="form2" enctype="multipart/form-data"> 
    <input type="hidden" name="test" value="form2sent" /> 
</form> 
function copy_file_input() { 
    var target_form = document.forms.form2; 
    if (target_form.file2 != undefined) { 
    target_form.removeChild(target_form.file2); 
    } 
    var elem = document.getElementById('file1'); 
    var copy = elem.cloneNode(true); 
    copy.name = 'file2'; 
    target_form.appendChild(copy); 
} 

同樣在此link可能是有用的。

+0

cloneNode和appendChild方法在ie中不起作用。 – 2012-07-13 08:41:57

+0

嗨,我做了同樣的工作,但服務器端我沒有收到任何數據。 – 2012-07-13 09:30:45

+0

@saravananshanmugavel你是對的,我測試了它,它無法制作所選文件的副本。你可以嘗試,如果這個更新將工作? – Stano 2012-07-13 18:19:54