Какой обходной путь для обмена с файловыми вводами? - PullRequest
6 голосов
/ 24 августа 2011

Как некоторые из вас, возможно, уже знают, событие Internet Explorer onchange в корне прервано до версии 9. Вместо запуска при изменении, оно срабатывает, когда поле ввода теряет фокус и имеет изменения.

Это приводит к различным обходным путям для флажков и переключателей («используйте onclick вместо») и текстовых полей («используйте keyup вместо»).

Однако у меня возникла эта проблема дляввод файла, и я не могу понять, что мне делать, чтобы получить уведомление о том, что новый файл был выбран сразу после того, как он был сделан, а не когда пользователь нажимает в другом месте.Я не могу присоединиться к событию мыши, потому что оно не связано с мышью;и я не могу присоединиться к событию клавиатуры, потому что оно также не связано с клавиатурой.

Я бы хотел использовать материал, специфичный для IE, если это может решить проблему.


Дополнительная информация:

Я использую jQuery 1.6 и метод live, чтобы прикрепить событие.

$(".upload").live("change", function() { /* stuff here */ });

1 Ответ

3 голосов
/ 25 августа 2011

Используйте событие onFocus в сочетании с проверкой, чтобы убедиться в наличии значения. Это работает, потому что после того, как пользователь выбирает файл и диалоговое окно выбора файла ОС удаляется, фокус возвращается к элементу ввода.

...