Javascript 如何清除文件输入
如果仔细阅读此代码,它会为每个附加行追加一个文件输入。现在,对于每个文件输入,都有一个清晰的文件按钮,可以删除文件输入中的任何内容。问题是它没有清除文件输入中的任何内容。这是为什么?如何解决 JavaScript:Javascript 如何清除文件输入,javascript,jquery,Javascript,Jquery,如果仔细阅读此代码,它会为每个附加行追加一个文件输入。现在,对于每个文件输入,都有一个清晰的文件按钮,可以删除文件输入中的任何内容。问题是它没有清除文件输入中的任何内容。这是为什么?如何解决 JavaScript: 您的一般策略似乎是通过将文件类型的输入替换为另一个输入元素来清除它。我不知道它为什么不起作用,下面是一个简单的POJS版本,它确实起作用: <form> <input type="file" name="fileName"> <input typ
您的一般策略似乎是通过将文件类型的输入替换为另一个输入元素来清除它。我不知道它为什么不起作用,下面是一个简单的POJS版本,它确实起作用:
<form>
<input type="file" name="fileName">
<input type="button" onclick="clearFileName(this);" value="Clear file input">
</form>
<script type="text/javascript">
function clearFileName(el) {
var input = el.form.fileName;
input.parentNode.replaceChild(input.cloneNode(false), input);
}
</script>
我写了一个函数来清除文件输入。它适用于所有浏览器 演示: 对于您的代码,您应该修改如下:
function clearInputFile(f){
if(f.value){
try{
f.value = '';
}catch(err){
}
if(f.value){
var form = document.createElement('form'), ref = f.nextSibling;
form.appendChild(f);
form.reset();
ref.parentNode.insertBefore(f,ref);
}
}
}
$(".imageClear").click(function(){
clearInputFile($(this).closest('form').find('input[type="file"]')[0]);
});
有一个Clear File按钮,用于删除文件输入中的任何内容。问题是它没有清除文件iput中的任何内容。我不明白这些说法之间的区别。它是否会从文件输入中删除内容?它的可能副本不会删除文件输入中的任何内容,这就是问题所在
function clearInputFile(f){
if(f.value){
try{
f.value = ''; //for IE11, latest Chrome/Firefox/Opera...
}catch(err){
}
if(f.value){ //for IE5 ~ IE10
var form = document.createElement('form'), ref = f.nextSibling;
form.appendChild(f);
form.reset();
ref.parentNode.insertBefore(f,ref);
}
}
}
function clearInputFile(f){
if(f.value){
try{
f.value = '';
}catch(err){
}
if(f.value){
var form = document.createElement('form'), ref = f.nextSibling;
form.appendChild(f);
form.reset();
ref.parentNode.insertBefore(f,ref);
}
}
}
$(".imageClear").click(function(){
clearInputFile($(this).closest('form').find('input[type="file"]')[0]);
});