2012-04-26 76 views
3

我寫了這個簡單的JavaScript代碼:空的輸入類型的文件不能在IE工作

$("input[type='file']").attr("value", ""); 

它工作在Firefox和Chrome,但不是在IE

(我在IE9試過)有什麼好方法來清空輸入類型文件的值?

謝謝

+1

可能重複http://stackoverflow.com/questions/ 9011644/how-to-reset-clear-file-input) – Quentin 2012-04-26 05:50:42

回答

10

上有輸入型的一些限制=文件

您可以閱讀here

這似乎在IE8是工作,IE9

$("input[type='file']").replaceWith($("input[type='file']").clone(true)); 

要在IE8中測試我將開發人員工具中的兼容模式更改爲IE8

編輯:

至於很多IE的黑客,我認爲這是更好的

if($.browser.msie){ 
     $("input[type='file']").replaceWith($("input[type='file']").clone(true)); 
    } else { 
     $("input[type='file']").val(''); 
    } 
[如何重置(清除)文件輸入(的
+0

可以用'$(「input [type ='file']」)正常工作。replaceWith($(「input [type ='file']」)。clone(true));' – 2012-04-26 06:46:12

+0

很高興:)如果IE繼續(https://4ormat.com/signup)(在IE中查看此頁面;)) – mprabhat 2012-04-26 06:49:39

+0

LOL,IE變得醜陋,非常難看 – 2012-04-26 07:30:30

1

jQuery docs says

在jQuery 1.6中,.attr()方法返回undefined對於尚未設置屬性 。另外,.attr()不應該用於 純文本對象,數組,窗口或文檔。要檢索並更改DOM屬性,請使用.prop()方法。

使用.prop()

+0

我現在用類似'$(「input [type ='file']」)的prop來試用。prop(「value」,「」);'但不起作用在IE9 ... – 2012-04-26 05:54:52

+0

選中此:http://stackoverflow.com/questions/1299052/jquery-get-the-file-name-selected-from-input-type-file。 – maialithar 2012-04-26 06:06:41

相關問題