2015-10-20 113 views
0

我有一個表單,有一個輸入類型文件,該元素具有一個按鈕,帶有點擊事件調用函數來上傳文件(圖像),之後用戶已填滿他的所有數據點擊按鈕驗證, 我想清除輸入類型文件,一旦用戶點擊了上傳文件和文件已上傳,因爲發生了什麼是該文件上傳到服務器需要時間,當用戶點擊上傳文件,當他點擊驗證按鈕,因爲它傳遞了http請求作爲表單的一個元素,所以我想要的是從輸入中刪除文件,一旦它被上傳,這是我的代碼我測試了不同的場景,他們都沒有已經工作了。如何在提交按鈕後從輸入中刪除文件

<div> 
    <input type='file' name='img1' id='img1'> 
    <input type="button" value="upload" onclick="uploadFile()"> 
    <progress id="progressBar" value="0" max="100" style="width:300px;"></progress> 
</div> 

JS

function _(el){ 
    return document.getElementById(el); 

} 
function uploadFile(){ 
    var file = _("img1").files[0]; 
    var e = document.getElementById("img1"); 
    var formdata = new FormData(); 
    formdata.append("img1", file); 
    var ajax = new XMLHttpRequest(); 
    ajax.upload.addEventListener("progress", progressHandler, false); 
    ajax.addEventListener("load", completeHandler, false); 
    ajax.addEventListener("error", errorHandler, false); 
    ajax.addEventListener("abort", abortHandler, false); 
    ajax.open("POST", 'distination'); 
    ajax.send(formdata); 
    formdata.delete("img1"); 
    formdata = ''; 
    _("img1").files[0] = ''; 

    e.value =''; 
    $('#img1').val(''); 
    $('#img1')[0].reset(); 
} 

形式的作用是PHP_SELF

+0

從'input type ='file''中刪除'name'屬性 – Igor

+0

該代碼是否成功上傳了該文件? – dman2306

+0

文件正在上傳與上傳按鈕,而不是與形式 –

回答

1

我發現這個由什麼你特別想要做搜索的StackOverflow:

function resetForm($form) { 
    $form.find('input:file').val(''); 
} 
// to call, use: 
resetForm($('#myform')); 

該解決方案完全來源於Resetting a multi-stage form with jQuery

用法示例當您提交的形式是:

$('#validateButton').click(function (e) { 
    e.preventDefault(); 
    resetForm($('#myform')); 
    $('#myform').submit(); 
}); 

#validateButton#myform應該與您的DOM元素的實際名稱所取代。

+0

按鈕沒有它沒有任何炒文件傳遞與形式的數據 –

+0

我更新了我的答案。將validateButton替換爲點擊時觸發的實際DOM元素按鈕ID。 –

+0

感謝您的幫助亞歷山大,但我很抱歉它沒有工作 –