Как настроить прослушиватель для файлового поля - когда пользователь выбирает файл, предпринимать действия - PullRequest
1 голос
/ 18 марта 2011

У меня есть поле для загрузки файла. Когда пользователь выбирает файл, под ним добавляется новое поле, позволяющее пользователю выбрать другой файл и т. Д.

$("#photos").change(function(){
    var countEmpty = 0;
    $("#photos input").each(function(index) {
        if ( $(this).val() == '' )
            countEmpty++;
    });
    if (countEmpty == 0)
        addNewPhoto();
});

Это код прямо сейчас. На самом деле он слушает изменение в div, который содержит поля ввода. Когда он выбирается, щелкается или что-то еще, скрипт проверяет наличие пустых полей. Если пустых полей нет, добавляется новое.

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

Любые предложения, как исправить для IE?

Спасибо.

PS: я видел uploadifier, но не смог бы реализовать его для моего проекта в настоящее время.

1 Ответ

0 голосов
/ 09 апреля 2011

Это связано с реализацией IE onChange.В IE элемент ввода должен потерять фокус, если значение этого входа изменилось, то onChange будет запущено.(Кстати, посмотрите на определение HTML 4 onChange, IE действительно делает это правильно, где, как Firefox ... делает неправильно http://www.w3.org/TR/REC-html40/interact/scripts.html#adef-onchange)

Я бы предложил изменить ваше событие с onChange на другоенапример, onClick.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...