HTML-тег ввода с типом файла в некоторых случаях не перехватывает событие «oninput» - PullRequest
0 голосов
/ 23 января 2019

Итак, на моей странице загрузки файлов есть область перетаскивания файлов.Если щелкнуть эту область, появится диалоговое окно ввода файлов, позволяющее пользователю выбирать файлы.В некоторых случайных случаях после выбора файлов и нажатия кнопки «Открыть» событие oninput не генерируется.Я что-то не так делаю?

Я пытался изменить событие oninput на onchange .И это не работает.У кого-нибудь была эта проблема?Заранее спасибо.

let input = document.createElement("input");
input.type = "file";
input.style.cssText = "display:none;";
input.multiple = true;
input.accept = "." + this.options.allowedFileType;
input.oninput = () => {
Array.from(input.files).forEach(file => {
      if (file.type === "application/pdf") {
        self.setUniqueUuidAndStoreFile(file);
      } else {
        self.displayErrorNotification(
        this.$t("file") + " " + file.name + " " + this.$t("wrongFileType")
      );
    }
  });
};
input.ondrop = function (event) {
  return false;
};
input.click();

1 Ответ

0 голосов
/ 23 января 2019

Это «нормальная» система, которая не регистрирует изменения время от времени, потому что она не видит весь файл по соображениям безопасности. Обходной путь, который мы используем, устанавливает нулевое значение для щелчка

input.onclick = function () {
    this.value = null;
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...