如何在 jQuery 中检查输入文件是否为空

对 JS 来说是全新的。
在使用 jQuery/JavaScript 提交表单时,我试图检查 file input 元素是否为空。 我已经想了很多解决方案,但是没有一个对我有用。我试图避免 /c/fakepath(除非没有其他选择)

<input type="file" name="videoFile" id="videoUploadFile" />

这种做法行不通:

var vidFile = $("#videoUploadFile").value;

获取文件名的唯一方法是使用以下命令:

var vidFile = document.getElementById("videoUploadFile").files[0].name;

如果没有可用的文件,代码将抛出一个错误:

无法读取未定义的属性名

这是有意义的,因为数组没有设置。但我不知道如何处理这个错误。

如何正确地获取文件输入元素 videoUploadFile,检查它是否为空,如果为空则抛出错误消息?

305311 次浏览

只需检查 文件属性的长度,它是包含在 input 元素上的 文件列表对象

if( document.getElementById("videoUploadFile").files.length == 0 ){
console.log("no files selected");
}

下面是它的 jQuery 版本:

if ($('#videoUploadFile').get(0).files.length === 0) {
console.log("No files selected.");
}

问题: 如何检查文件是否为空?

答: 我已经用这个 Jquery 代码解决了这个问题

//If your file Is Empty :
if (jQuery('#videoUploadFile').val() == '') {
$('#message').html("Please Attach File");
}else {
alert('not work');
}


<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="file" id="videoUploadFile">
<br>
<br>
<div id="message"></div>

检查输入文件是否为空 通过使用 file length 属性,应该像下面这样指定 index:

var vidFileLength = $("#videoUploadFile")[0].files.length;
if(vidFileLength === 0){
alert("No file selected.");
}

我知道我迟到了,但是我想我应该加上我最后用到的东西——就是简单地检查文件上传输入是否包含一个带 not 操作符和 JQuery 的真实值,如下所示:

if (!$('#videoUploadFile').val()) {
alert('Please Upload File');
}

请注意,如果这是一个表单,您可能还需要用以下处理程序包装它,以防止表单提交:

$(document).on("click", ":submit", function (e) {


if (!$('#videoUploadFile').val()) {
e.preventDefault();
alert('Please Upload File');
}


}
  $("#customFile").change(function() {
var fileName = $("#customFile").val();


if(fileName) { // returns true if the string is not empty
$('.picture-selected').addClass('disable-inputs');
$('#btn').removeClass('disabled');
} else { // no file was selected
$('.picture-selected').removeClass('disable-inputs');
$('#btn').addClass('disabled');
}
});
if (data.name == '') {
//file doesn't exist;
}
else {
//file exist;
}