Как проверить, если файл выбран с помощью JavaScript? - PullRequest
6 голосов
/ 13 сентября 2009

В php вы можете проверить, выбран ли файл:

$_FILES['item']['size']>0

как насчет JavaScript?

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

Ответы [ 3 ]

19 голосов
/ 13 сентября 2009

http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-49531485 говорит:

значение типа DOMString
Когда атрибут type элемента имеет значение «text», « file » или «password», это представляет текущее содержимое соответствующего элемента управления формы в интерактивном пользовательском агенте.
<html>
  <head><title>...</title>
    <script type="text/javascript">
      function foo() {
        var f = document.getElementById("f1");
        alert( ""==f.value ? "nothing selected" : "file selected");
      }
    </script>
  </head>
  <body>
    <form>
      <div>
        <input id ="f1" type="file" name="x" />
      </div>
    </form>
    <button onclick="foo()">click</button>
  </body>
</html>
7 голосов
/ 02 февраля 2011

Я использую этот JavaScript:

var file_selected = false;
function showNoFile() {
    if(!file_selected) { alert('No file selected!'); } // or anything else
}

с этим HTML для кнопки файла:

<input type='file' onchange="file_selected = true;" ...>
....
<input type='submit' onclick='showNoFile();'>

надеюсь, это поможет!

0 голосов
/ 14 марта 2016

Допустим, у вас есть html-форма и пользовательский ввод загрузки файлов:

<label for="imageUploadButton">
<span class="btn" style="padding-left: 10px;">Click here for uploading a new picture</span>
</label> 
<input type="file" name="avatar_picture" accept="image/gif,image/jpeg,image/png" id="imageUploadButton" style="visibility: hidden; position: absolute;">

И вы хотите проверить имя файла файла, который пользователь выбрал / выбрал:

Использование jquery

<script type="text/javascript">
  $(function() {
     $("input:file").change(function (){
       var fileName = $(this).val();
       alert(fileName); //Do with the filename whatever you want
     });
  });
</script>

@ https://stackoverflow.com/a/5670938/2979938

Для тех, кто использует requireJS:

$("input:file").change(function () {
  var fileName = $(this).val();
  alert(fileName); //Do with the filename whatever you want
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...