how to reset (clear) file input
If fileInputElement
is on its own in the form fileInputForm
, you can do:
window.fileInputForm.reset();
Otherwise for IE you'll have to replace the element with a clone:
fileInputElement.parentNode.replaceChild( fileInputElement.cloneNode(true), fileInputElement);
SOLUTION
The following code worked for me with jQuery. It works in every browser and allows to preserve events and custom properties.
var $el = $(fileInputElement);$el.wrap('<form>').closest('form').get(0).reset();$el.unwrap();
DEMO
See this jsFiddle for code and demonstration.
LINKS
Cross-Browser solution by @Gyrocode.com in 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); }}