Поведение ввода файла в IE - PullRequest
1 голос
/ 12 октября 2010

Я заметил разницу в поведении между Chrome и IE в обработке кликов при вводе файлов.

Пример jsFiddle здесь .

В Chrome щелчок в любом месте ввода(текст или бит кнопки) запускает диалоговое окно файла.

В IE (тестирование на 7) нужно нажимать на фактическую кнопку, а не на текстовый бит.

Проблема в том, что яЯ использую прозрачный файл ввода поверх обычного текстового поля.Нажатие на текстовое поле должно открыть диалоговое окно.В Chrome это работает нормально, так как общий размер ввода совпадает с размером моего текстового поля.

В IE это не работает должным образом, так как пользователь должен нажать на фактическую часть кнопкиПрозрачный файл ввода.

Есть идеи, как это исправить ??

Спасибо

Ответы [ 2 ]

3 голосов
/ 12 октября 2010

Посмотрите, как эти парни сделали это: http://www.filamentgroup.com/lab/jquery_custom_file_input_book_designing_with_progressive_enhancement/

Стратегия та же: наложение пользовательского файла поверх стандартного и дает пользователю возможность взаимодействовать со стандартным.

Они написали небольшой хак для поддержки клика для IE и Opera, используя jQuery для явного связывания события клика.

См .: http://dwpe.googlecode.com/svn/trunk/fileinput/js/jQuery.fileinput.js (строка 52)

1 голос
/ 12 октября 2010

Вам нужно найти способ вызвать событие щелчка в поле ввода file.

Возможно добавление обработчика щелчка в базовом текстовом поле, которое вызывает событие щелчка в поле файла.

пример: http://jsfiddle.net/MqbrV/

Он не работает в Firefox (, но достаточно действия по умолчанию ) и Opera (, где ни один не работает ).

...