jQuery: событие "change" для элемента ввода файла не запускается, если выбор файла инициируется элементом, отличным от ввода файла - PullRequest
6 голосов
/ 11 ноября 2010

RE:


Вышеуказанные вопросы касались получения события «change» для последовательного запуска во всех браузерах после выбора файла.Это было решено, что подтверждается примером на http://jsfiddle.net/7wR2L/

Моя ситуация немного иная.Кажется, эта проблема поднимает свою уродливую голову в другом контексте.

Исходя из ограничений дизайна, я должен использовать элемент ввода не из файла (тег 'a'), чтобы вызвать событие "click" в файлеэлемент ввода.Что касается моих тестов, то, похоже, что входной файл не может запустить уведомление «об изменении», когда файл выбран таким способом.

Пожалуйста, посмотрите на пример на http://jsfiddle.net/rudylattae/7wR2L/8/

Среда (ы) тестирования:

Windows Server 2008 R2

  • Chrome 7.0.517.44 - PASS
  • Firefox 3.6.9- FAIL
  • IE 8.0.7600.16385 64bit - FAIL

Windows XP Pro (2002 - SP3)

  • Chrome 8.0.552.28 beta - PASS
  • Firefox 3.5.14 - FAIL (даже не вызывает селектор файлов)
  • IE 8.0.6001.18702 - FAIL

Ответы [ 2 ]

7 голосов
/ 11 ноября 2010

При использовании MSIE используйте onpropertychange - Событие, например: http://jsfiddle.net/7wR2L/14/

Поскольку jQuery не поддерживает это событие, вы должны назначить его без jquery (встроенный или использовать attachEvent)

В других браузерах попробуйте использовать mutation-events, возможно, они будут работать там. См. Связанную тему вчерашних мутационных событий, чтобы получить небольшой пример того, как они работают: Как записать изменение заголовка страницы из расширения Firefox

0 голосов
/ 05 сентября 2014

Попробуйте использовать современную версию jQuery .

Описанная проблема с событием change в Internet Explorer была исправлена ​​в jQuery> = 1.6.4 .

...