Javascript 如何从表单中删除上载项?

Javascript 如何从表单中删除上载项?,javascript,file,upload,Javascript,File,Upload,我有一个允许使用文件输入加载文件的表单。我想允许用户删除上传项目,但我无法确定。到目前为止,我一直在努力做到以下几点: <form action="insert.php" method="POST" align="right" id="post_form"> <input type="file" id="upload_file" onChange="display()"> <div id="show_button" onClick="remove_pic()"&

我有一个允许使用文件输入加载文件的表单。我想允许用户删除上传项目,但我无法确定。到目前为止,我一直在努力做到以下几点:

<form action="insert.php" method="POST" align="right" id="post_form">
 <input type="file" id="upload_file" onChange="display()">
 <div id="show_button" onClick="remove_pic()">  remove </div><br>
</form>


function remove_pic() {
  alert('check');
  var file_loaded = document.getElementById("upload_file");
  file_loaded = null; // here i try to remove the object
}

删除
函数remove_pic(){ 警惕(“检查”); var file_load=document.getElementById(“上传_文件”); file_loaded=null;//这里我尝试删除该对象 }
在通过JSFIDLE运行代码并检查Chrome开发控制台时,我一直收到一条“函数未定义”错误消息

我发现,显式地将您试图调用的函数直接放入全局作用域可以使它被识别为已定义的函数。您还需要使用空白字符串而不是null,并将“.value”属性的更改附加到“file\u loaded”变量中

而不是

function remove_pic() {
  alert('check');
  var file_loaded = document.getElementById("upload_file");
  file_loaded = null; // here i try to remove the object
}
试一试


示例JSFIDLE:

hi,实际上我所要做的就是将.value添加到加载的文件中。你能解释一下为什么要写这句话:“window.remove_pic=function()”我的意思是这句话的意思吗?这可能只是JSFIDLE的一个怪癖,但似乎我必须显式地将函数放入全局范围才能工作。据我所知,编写“window.remove_pic=function()”只是将函数放入全局范围的一种显式方法。我还学习了写“var functionName=function()”,他的论点是它使函数的定义更清晰,更容易阅读。不过,很高兴它成功了!:)
window.remove_pic = function() {
  alert('check');
  var file_loaded = document.getElementById("upload_file");
  file_loaded.value = ""; // here i try to remove the object 
};