метод изменения jQuery на входе вводит = “файл”

Я пытаюсь охватить jQuery 100% с, он - простой и изящный API, но я столкнулся с несоответствием между API и прямым HTML, который я не могу вполне выяснить.

У меня есть сценарий загрузчика файла Ajax (который функционирует правильно), что я хочу выполнить каждый раз изменения входного значения файла. Вот мой рабочий код:

<input type="file" size="45" name="imageFile" id="imageFile" onchange="uploadFile()">

Когда я преобразовываю onchange событие к реализации jQuery:

$('#imageFile').change(function(){ uploadFile(); });

результатом не является то же. С onchange припишите uploadFile() функция вызвана каждый раз, когда значение изменяется, как ожидается. Но с API jQuery .change() обработчик событий, событие только стреляет в первый раз, когда значение является изменением. Любое изменение значения после этого проигнорировано. Это кажется неправильным мне, но конечно это не может быть контролем jQuery, правильно?

Кто-либо еще встретился с той же проблемой, и у Вас есть обходное решение или решение проблемы кроме того, что я описал выше?

66
задан PeeHaa 29 January 2012 в 03:04
поделиться

1 ответ

обновляет ли загрузчик ajax ваш элемент ввода? если да, то вам следует рассмотреть возможность использования метода .live ().

 $('#imageFile').live('change', function(){ uploadFile(); });

обновление:

из jQuery 1.7+, теперь вы должны использовать .on ()

 $(parent_element_selector_here or document ).on('change','#imageFile' , function(){ uploadFile(); });
87
ответ дан 24 November 2019 в 14:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: