Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   input type file (https://javascript.ru/forum/misc/76800-input-type-file.html)

Роман Андреевич 15.02.2019 08:33

input type file
 
Коллеги, доброго времени суток

Вопрос не тривиальный, есть на странице кнопка, по нажатию вылетает попап, в котором есть input type file.

<form name="uploadMatricula" enctype="multipart/form-data" method="POST">
									<label class="tramite">
										Загрузить
										<input type="file" id="matriculaFile" name="myfile" accept=".jpg,.jpeg,.png,.pdf">
									</label>
								</form>

Собственно по событию change мы понимаем что файлы есть, но!!!

Есть ли возможность отследить открытие и закрытие именно самого диалогового окна, в котором выбираются файлы?????

Буду рад любой помощи))))

пысы - почему так? партия сказала)))))

Nexus 15.02.2019 09:25

Цитата:

Сообщение от Роман Андреевич
Собственно по событию change мы понимаем что файлы есть

Файлов может и не быть.

Цитата:

Сообщение от Роман Андреевич
Есть ли возможность отследить открытие и закрытие именно самого диалогового окна, в котором выбираются файлы?????

Вроде бы нет.
Можно попробовать отследить клик по input.

Роман Андреевич 15.02.2019 09:42

Nexus, в том и дело, я отслеживаю клик по инпуту, но не отслеживаю закрытие окна, там блокировки стоят, убирать их не хочется, короче я понял что никак этого не отследить.

А по поводу файлов, change срабатывает только при появлении файла/ов иначе это окно можно закрыть только через отмену или esc.

Но в любом случае спасибо, что откликнулись

Nexus 15.02.2019 10:03

Цитата:

Сообщение от Роман Андреевич
А по поводу файлов, change срабатывает только при появлении файла/ов иначе это окно можно закрыть только через отмену или esc.

Это не так.
Кликните по инпуту, выберите файл, подтвердите (событие вызвалось), кликните по инпуту еще раз, в диалоговом окне нажмите "отмена" (событие вызвалось, файлов выбранных нет).

laimas 15.02.2019 10:14

Цитата:

Сообщение от Роман Андреевич
но не отслеживаю закрытие окна, там блокировки стоят

Это системный диалог, какие еще могут быть для него ваши блокировки?

laimas 15.02.2019 10:27

Цитата:

Сообщение от Роман Андреевич
я отслеживаю клик по инпуту

А смысл?

Malleys 15.02.2019 18:12

Этот элемент содержит список файлов, который представляет выбор пользователя.

Согласно спецификации, каким бы способом не был обновлён список файлов, браузер должен сперва обновить список этих файлов, так что он представляет текущий выбор пользователя, затем запустить всплывающее событие input на элементе <input>, и наконец запустить всплывающее событие change на том же элементе.

Вы можете обновить список файлов путём перетаскивания файлов, выбора их в диалоговом окне. Файлы могут быть из файловой системы или созданы на лету, могут быть предложены варианты выбора файлов из фото-галереи, сделать снимок и т. д. Т. е. сначала диалоговое окно может предложить, из какой программы выбрать файлы, затем при выборе варианта диалоговое окно закроется и запустится приложение, из которого вы можете выбрать файлы. Так что не совсем понятно, что вы имеете в виду, когда пишете «возможность отследить открытие и закрытие именно самого диалогового окна».

Каким бы способом не был обновлён список файлов, вы можете узнать об этом подписавшись на события input или change.

Роман Андреевич 16.02.2019 16:53

Nexus, первый раз когда вы открываете диалоговое окно и нажимаете отмену то ничего не срабатывает. Это так сделано.

Тут на самом деле исключительно моя фича в проекте))) Был просто вопрос, может я чего то не знал, поэтому обратился к вам - коллегам. Большое спасибо за коменты


Часовой пояс GMT +3, время: 16:30.