2015-10-20 115 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

感谢您的帮助亚历山大,但我很抱歉它没有工作 –