Добро пожаловать в эпизод 32 342 343 из "Почему Internet Explorer сосать так много?"...
Я видел множество отчетов о том, что IE9 выполняет дрянные загрузки файлов. По-видимому, у него много предостережений, когда он будет или не будет работать (если у кого-то есть окончательный список, я бы с удовольствием его увидел). Однако большинство проблем/решений, которые я вижу, связаны с javascript, обычно с плагином формы jQuery или с чем-то похожим.
Моя форма не отправляется через AJAX, и поле ввода файла не скрывается или не отображается css. Тем не менее, я получаю несколько билетов на поддержку в день от пользователей в IE9, пытающихся отправить форму и "ничего не происходит" (= форма отправляется. Нет ошибок, но файл не загружен.) У меня нет единой жалобы с другой браузер, и IE8, похоже, работает (как и когда-либо).
Здесь верх моей формы. Я что-то пропустил?
<form action="http://mysite.dev/account-settings/?open=resume" method="post" class="wpjb-form" enctype="multipart/form-data">
<input type="hidden" name="resume_form" value="resume_form" />
<fieldset class="wpjb-fieldset-default">
<input id="firstname" name="firstname" type="hidden" class="regular-text " value="John" />
<input id="lastname" name="lastname" type="hidden" class="regular-text " value="Henry" />
<input id="email" name="email" type="hidden" class="regular-text " value="[email protected]" />
<div class="wpjb-element-input-checkbox wpjb-element-name-is_active">
<label class="wpjb-label">Show resume? </label>
<div class="wpjb-field">
<label for="is_active_1"><input type="checkbox" class="" name="is_active" id="is_active_1" value="1" checked="checked" /> Yes <small style="display:inline;">(Uncheck to hide your resume)</small></label>
</div>
</div>
<div class="wpjb-element-input-select-one wpjb-element-name-file">
<label class="wpjb-label">Upload a <i>new</i> resume file</label>
<div class="wpjb-field">
<input style="line-height:1em;" id="file" name="file" type="file" class="regular-text " />
<small class="wpjb-hint">Accepted file types: doc, docx, odf, pdf, rtf</small>
</div>
</div>
</fieldset>
...
Это происходит следующим образом: еще пара <fieldset>
заканчивается следующим образом:
....
<p class="submit">
<input type="submit" name="Submit" id="wpjb_submit" value="Save Changes" />
</p>
</form>
Обновление Я рад за всех, кто никогда не испытывал этой проблемы, но это не только я: http://answers.microsoft.com/en-us/ie/forum/ie9-windows_vista/cannot-upload-files-using-internet-explorer-9/5724d921-ae71-e011-8dfc-68b599b31bf5
Update2
Я вижу много предложений по добавлению метатега, чтобы заставить пользовательский агент IE8...
<meta http-equiv="X-UA-Compatible" content="IE=8" />
Я не хочу этого делать, потому что, хотя я поддерживаю IE8, многие элементы на моем сайте отличаются по-разному в IE8 и IE9. Это создаст довольно неряшливый пользовательский опыт, так как любые пользователи IE будут испытывать временную "временную деформацию" на IE8 на этой конкретной странице.