HTML+JS:点击按钮清除文件输入



我想告诉我的后端,我删除了它已经加载的分配文件:

<input id="pic" name="pic" type="file" onclick="this.value=null;" onchange="uploadFile(this);">
<button id="pic-delete" type="button" onclick="removeFile(this);"><i someicon></i></button>

onclick函数如下所示:

removeFile = function() {
var ipt = document.getElementById("pic");
ipt.value = null; // <--- problem here
console.log("worked...")
}

我现在的问题是:无论我什么都不做还是点击删除按钮,我都可以在浏览器的"网络"选项卡中区分请求。两次都没有显示输入字段。我想添加ipt.value="DELETE",这样我就可以在后端捕获它,但这导致了一个错误:

Uncaught DOMException: An attempt was made to use an object that is not, or is no longer, usable

根据我所知,如果我在这行中放入除ipt.value = nullipt.value = ""之外的任何其他内容,则总是会发生错误。

篡改完整的代码以显示错误:https://jsfiddle.net/rvc8sbjy/3/

有一些错误。您试图提取ID的方式是错误的。一个简单得多的方法是只使用.replace

var inputFieldID = v.id.replace("-delete", "");

第二,不能将值设置为非空字符串。要重置它,只需将其设置为空:

ipt.value = "";

工作示例:

https://jsfiddle.net/5yqohjzv/

最新更新