Вопрос по html5 – Захват события отмены для типа ввода = файл

6

У меня есть приложение html5, которое использует файловый API, используя элемент. Я могу ответить, когда пользователь выбирает файл. Я хотел бы иметь возможность что-то сделать, если пользователь отменяет выбор файла. Тем не менее, я не могу найти событие, которое запускается на элементе ввода, если пользователь нажимает кнопку «Отмена», а не «ОК» в диалоговом окне выбора файла.

Есть ли какое-либо событие, инициированное «отменить»? что я скучаю, или я должен перепроектировать свое приложение, чтобы не нуждаться в этом?

Ваш Ответ

3   ответа
3

изменение события запускается снова. Это работает для меня;

        $('#attachedFiles').bind("change", function () {
            var file = this.files[0];
            if (file) {
                // if file selected, do something
            } else {
                // if user clicks 'Cancel', do something
            }
        });
@ E-D не работает на Safari тоже
Я с @PatrickRudolph - я использую Firefox, и изменения не инициируются, когда пользователь нажимает кнопку отмены. Патрик, вы нашли решение?
Какие браузеры генерируют событие изменения при отмене ввода файла? Не работает для меня.
для более подробного объяснения: эта команда работает только для браузера Google Chrome. -And this is normal - Google Chrome прошел политику, чтобы пользователь мог удалить файл, а не просто отменить его.browse...- Это вопросpolicals browsers другие просто должны отменить клик. Отображение имени файла в типе ввода файла является согласованным в зависимости от браузеров. При отмене Google Chrome удаляет файл и имя файла в файле ввода типа, в то время как другие ничего не делают. Voil & # xE0 ;.
0

который бы проверял, был ли выбран файл, вы можете обойти его, установив примечание в своем коде, используя событие on change, например, так:

var FileChoosen = false;

var inputElement = document.getElementById("inputField");
inputElement.addEventListener("change", handleFiles, false);
function handleFiles() {
  var fileList = this.files; /* now you can work with the file list */


  //Check if the layout was changed from file API:
  if(document.getElementById('fileOutput').innerHTML != "") {
    FileChoosen = true;
    setTimeout("funcCalledToCheckUserSelection()", 500);
  };


}
0

решение на удивление очень простое ... по крайней мере, в моем случае NW.js (Node-Webkit) запускает событие oncancel, если пользователь нажимает кнопку [отмена] в диалоге выбора файлов. Вы используете этот простой и естественный способ, если вы также используете NW.js (process.version v5.11.0).

Я также попробовал Microsoft HTA на Windows 10, он не запускает событие oncancel.

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