Skip to content

Commit 7a9161d

Browse files
committed
Fix #40: Fix IE inability to clear fileinput values
1 parent f88e690 commit 7a9161d

File tree

3 files changed

+17
-5
lines changed

3 files changed

+17
-5
lines changed

CHANGE.md

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ version 2.5.0
66
- (bug #37): HTML encode text content for preview in modal.
77
- (enh #38): Highlight error CSS in file caption on validation error.
88
- (bug #39): HTML encode caption hover title.
9+
- (bug #40): Fix IE (ver < 11) inability to clear fileinput values.
910

1011
version 2.4.0
1112
=============

js/fileinput.js

+15-4
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@
281281
self.clear(false);
282282
$cap.focus();
283283
});
284-
$($el[0].form).on('reset', $.proxy(self.reset, self));
284+
$el.closest('form').on('reset', $.proxy(self.reset, self));
285285
self.$container.on('click', '.fileinput-remove:not([disabled])', $.proxy(self.clear, self));
286286
},
287287
refresh: function (options) {
@@ -341,16 +341,27 @@
341341
$(this).remove();
342342
});
343343
},
344-
clear: function (e) {
345-
var self = this;
344+
clearFileInput: function() {
345+
var self = this, $el = self.$element;
346+
// Fix for IE ver < 11, that does not clear file inputs
347+
if (/MSIE/.test(navigator.userAgent)) {
348+
$el.wrap('<form>').closest('form').trigger('reset');
349+
$el.unwrap();
350+
} else {
351+
$el.val('');
352+
}
353+
},
354+
clear: function () {
355+
var self = this, e = arguments.length && arguments[0];
346356
if (e) {
347357
e.preventDefault();
348358
}
349359
if (self.reader instanceof FileReader) {
350360
self.reader.abort();
351361
}
352-
self.$element.val('');
362+
self.clearFileInput();
353363
self.resetErrors(true);
364+
354365
if (e !== false) {
355366
self.$element.trigger('change');
356367
self.$element.trigger('fileclear');

0 commit comments

Comments
 (0)