В php так вы можете проверить, выбран ли файл:
$_FILES['item']['size']>0
что в JavaScript?
Мне нужно знать, потому что у меня есть функция, которая будет работать только при выборе файла.
http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-49531485 говорит:
значение типа DOMString
Когда атрибут типа элемента имеет значение «текст», « файл » или «пароль», это представляет текущее содержимое соответствующего элемента управления формы в интерактивном пользовательском агенте.
<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>
Я использую этот 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();'>
надеюсь, это поможет!
Поэтому давайте скажем, что у вас есть какая-то форма 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 });