javascript - una - se borran los archivos de google drive
cómo restablecer(borrar) la entrada del archivo (5)
¿Cómo puedo restablecer la entrada de archivos en IE, utilicé lo siguiente y funcionó en Chrome y FF, pero no IE
fileInputElement.value=""
¿Cuál es la alternativa en IE?
No puede restablecer la entrada de archivo por sí mismo. Lo que puede hacer es ajustar su entrada de archivo en una etiqueta <form id="form_id">
y restablecer el formulario. Con jQuery puedes hacer $(''#form_id'')[0].reset();
y en JavaScript puede hacer document.getElementById(''form_id'').reset()
.
Solución de navegador cruzado por @ Gyrocode.com en vanilla JS:
var clearFileInput = function (input) {
if (!input) {
return;
}
// standard way - works for IE 11+, Chrome, Firefox, webkit Opera
input.value = null;
if (input.files && input.files.length && input.parentNode) {
// workaround for IE 10 and lower, pre-webkit Opera
var form = document.createElement(''form'');
input.parentNode.insertBefore(form, input);
form.appendChild(input);
form.reset();
form.parentNode.insertBefore(input, form);
input.parentNode.removeChild(form);
}
}
Con IE 10 resolví el problema con:
var file = document.getElementById("file-input");
file.removeAttribute(''value'');
file.parentNode.replaceChild(file.cloneNode(true),file);
dónde :
<input accept="image/*" onchange="angular.element(this).scope().uploadFile(this)" id="file-input" type="file"/>
SOLUCIÓN
El siguiente código me funcionó con jQuery. Funciona en todos los navegadores y permite conservar eventos y propiedades personalizadas.
var $el = $(fileInputElement);
$el.wrap(''<form>'').closest(''form'').get(0).reset();
$el.unwrap();
MANIFESTACIÓN
Ver este jsFiddle para código y demostración.
CAMPO DE GOLF
Borrar <input type = ''file'' /> usando jQuery
Si fileInputElement
está solo en el formato fileInputForm
, puede hacer:
window.fileInputForm.reset();
De lo contrario, para IE, tendrás que reemplazar el elemento con un clon:
fileInputElement.parentNode.replaceChild(
fileInputElement.cloneNode(true),
fileInputElement
);