Как указывает goreSplatter ниже, будьте осторожны, чтобы такое поведение не было неожиданным с точки зрения пользовательского опыта. Например, может быть совершенно правильным сделать это с тем, что прикрепляет файлы к электронной почте, как это делает GMail; но если у пользователя нет возможности отменить эти вложения и т. д. до того, как все будет завершено, вы можете упасть в яму UX. Но я ожидаю, что вы, вероятно, уже отработали UX-аспект и не делаете глупостей. : -)
Ответ на вопрос: Вы можете сделать это, используя обработчик событий change
, например, onchange=
или эквивалент DOM2 через addEventListener
(или attachEvent
в IE).
Пример ( живая копия ):
hookEvent(document.getElementById('fileInput'),
'change',
inputChanged);
function inputChanged() {
display("The input's value changed");
}
... где hookEvent
- ваша служебная функция для подключения обработчика событий (см. Ссылку ниже для одного примера, но она не оптимизирована; если вы используете библиотеку, такую как jQuery , Прототип , YUI , Закрытие или любой из нескольких других , они будут включать средства перехвата событий между кроссбраузерами. *
Приведенный выше пример работает в Chrome, Firefox и Opera для Linux, IE6 и IE7 в Windows, и поэтому, скорее всего, в целом будет хорошо поддерживаться.