瀏覽代碼

Fix #181: More correct fix for IE11 when file input is cleared

Kartik Visweswaran 10 年之前
父節點
當前提交
a528c98d02
共有 3 個文件被更改,包括 9 次插入2 次删除
  1. 3 0
      examples/index.html
  2. 6 2
      js/fileinput.js
  3. 0 0
      js/fileinput.min.js

+ 3 - 0
examples/index.html

@@ -52,6 +52,9 @@
     $("#file-0").fileinput({
         'allowedFileExtensions' : ['jpg', 'png','gif'],
     });
+        $("#file-0").on('fileselectnone', function() {
+            alert("HUH! No Files");
+        });
     $("#file-1").fileinput({
         uploadUrl: '#', // you must set a valid URL here else you will get an error
         allowedFileExtensions : ['jpg', 'png','gif'],

+ 6 - 2
js/fileinput.js

@@ -308,6 +308,7 @@
                 }
                 self[key] = value;
             });
+            self.fileInputCleared = false;
             if (isEmpty(self.allowedPreviewTypes)) {
                 self.allowedPreviewTypes = defaultPreviewTypes;
             }
@@ -840,6 +841,7 @@
             } else { // normal input clear behavior for other sane browsers
                 $el.val('');
             }
+            self.fileInputCleared = true;
         },
         resetUpload: function () {
             var self = this;
@@ -1548,9 +1550,11 @@
         },
         change: function (e) {
             var self = this, $el = self.$element;
-            if (!self.isUploadable && isEmpty($el.val())) { // IE 11 fix
+            if (!self.isUploadable && isEmpty($el.val()) && self.fileInputCleared) { // IE 11 fix
+                self.fileInputCleared = false;
                 return;
             }
+            self.fileInputCleared = false;
             var tfiles, msg, total, $preview = self.$preview, isDragDrop = arguments.length > 1,
                 files = isDragDrop ? e.originalEvent.dataTransfer.files : $el.get(0).files,
                 isSingleUpload = isEmpty($el.attr('multiple')),
@@ -1562,8 +1566,8 @@
                 };
             self.resetUpload();
             self.hideFileIcon();
-            self.$container.find('.file-drop-zone .' + self.dropZoneTitleClass).remove();
             if (isDragDrop) {
+                self.$container.find('.file-drop-zone .' + self.dropZoneTitleClass).remove();
                 tfiles = files;
             } else {
                 if (e.target.files === undefined) {

文件差異過大導致無法顯示
+ 0 - 0
js/fileinput.min.js


部分文件因文件數量過多而無法顯示