如何在提交按钮后从输入中删除文件
我有一个表单,有一个输入类型文件,该元素具有一个按钮,带有点击事件调用函数来上传文件(图像),之后用户已填满他的所有数据点击按钮验证, 我想清除输入类型文件,一旦用户点击了上传文件和文件已上传,因为发生了什么是该文件上传到服务器需要时间,当用户点击上传文件,当他点击验证按钮,因为它传递了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
我发现这个由什么你特别想要做搜索的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元素的实际名称所取代。
按钮没有它没有任何炒文件传递与形式的数据 –
我更新了我的答案。将validateButton替换为点击时触发的实际DOM元素按钮ID。 –
感谢您的帮助亚历山大,但我很抱歉它没有工作 –
从'input type ='file''中删除'name'属性 – Igor
该代码是否成功上传了该文件? – dman2306
文件正在上传与上传按钮,而不是与形式 –