2012-04-26 3 views
3

Я написал этот простой яваскрипт кода:Пустого типа ввода не работает в IE

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

Он работает в Firefox и Chrome, но не в IE (я пробовал в IE9)

Что хорошего подход для пустого значения файла типа ввода?

Спасибо

+1

возможно дубликат [как сбросить (очистить) входной файл] (http://stackoverflow.com/questions/ 9011644/how-to-reset-clear-file-input) – Quentin

ответ

10

Есть некоторые ограничения на тип ввода = файл

Вы можете прочитать here

Это, кажется, работает в IE8, IE9

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

Для test в IE8 Я изменил режим совместимости в инструменте разработчика на IE8

Edit:

Как для многих 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));' –

+0

рад :) Если IE продолжает то же самое не будет слишком долго, чтобы увидеть это вместе (https://4ormat.com/signup) (проверьте эту страницу в IE;)) – mprabhat

+0

LOL, IE становится уродливым, очень уродливым –

1

jQuery docs says:

По JQuery 1.6, .attr() метод возвращает неопределенное значение для атрибутов , которые не были установлены. Кроме того, .attr() не следует использовать на простых объектах, массивах, окне или документе. Для извлечения и измените свойства DOM, используйте метод .prop().

Использование .prop()

+0

Я пробовал теперь с поддержкой типа $ $ ("input [type = 'file']"). Prop ("value", ""); 'но не работает в IE9 ... –

+0

Проверьте это: http://stackoverflow.com/questions/1299052/jquery-get-the-file-name-selected-from-input-type-file. – maialithar

Смежные вопросы