如何使用 JavaScript/jQuery 检查输入文件是否为空?

javascriptjqueryweb developmentfront end technology

在 JavaScript 中,在使用表单元素时,我们需要在用户输入值时验证输入字段和表单元素。在本教程中,我们将使用文件输入。

我们还将学习验证文件输入。有时,我们可能需要检查文件是否在输入字段中被选中,然后才启用提交按钮;否则,禁用提交按钮。因此,它不会允许用户在未选择表单或文件的情况下提交它。

使用 JavaScript 验证文件输入

在 JavaScript 中,我们可以使用 idnametag nameclass name 访问文件输入。之后,我们可以检查文件输入字段是否包含任何文件值。我们可以将事件监听器添加到文件输入以用于更改事件。因此,每当文件输入的值发生变化时,都会调用事件侦听器,我们可以检查文件输入是否包含任何文件。

语法

用户可以按照以下语法使用 JavaScript 检查文件输入是否为空。

fileInput.addEventListener("change", function () {
    if (fileInput.files.length == 0) {
    
    // 文件输入为空
    } else {
    
    // 文件已选中
    }
});

在上述语法中,我们在文件输入中添加了 change 事件的事件侦听器。此外,我们已将函数表达式作为回调函数传递,该函数检查是否选择了任何文件。

文件输入包含文件数组,如果文件输入中没有上传任何文件,我们可以检查数组的长度是否为零。

示例

在此示例中,我们创建了提交按钮。它在开始时处于禁用状态,当用户上传任何单个文件时,我们使用 JavaScript 启用该按钮。我们通过 id 选择了文件输入,并使用数组类型的"files"属性来检查是否选择了任何文件。

<html>
<body>
   <h2>Using the <i> JavaScript </i> to check whether file input is empty</h2>
   <input type = "file" id = "fileInput" /><br /><br />
   <button id = "click" disabled>Submit File </button>
   <script>
      let clickButton = document.getElementById("click");
      let fileInput = document.getElementById("fileInput");
      fileInput.addEventListener("change", function () {
         
         // 检查文件是否被选中
         if (fileInput.files.length == 0) {
            clickButton.disabled = true;
            clickButton.opacity = 0.3;
         } else {
            clickButton.disabled = false;
            clickButton.style.opacity = 1;
         }
      });
   </script>
</body>
</html>

使用 jQuery 验证文件输入

jQuery 是最常用的 JavaScript 库之一,它提供了简单干净的语法来编写代码。我们可以通过将 jQuery 的 CDN 添加到 HTML 代码的 <head> 标记中来将其与 HTML 代码一起使用。

由于我们可以在 JavaScript 中访问文件输入,因此我们也可以使用各种方法在 jQuery 中访问它。之后,我们可以检查文件输入的"files"属性的长度,以确保文件输入是否为空。

语法

用户可以按照以下语法使用 jQuery 检查文件输入是否包含任何文件

let files = $("#fileInput")[0].files.length;
if (files != 0) {

    // 已选择文件
} else {
    
    // 未选择文件
}

在上述语法中,我们通过其 id 选择了文件输入。'#' 代表 id。

示例

在下面的示例中,我们创建了 validateFileInput() 按钮,当用户单击"单击我"按钮时会调用该按钮。该函数通过 id 选择文件输入,检查其"files"属性的长度,并在屏幕上向用户显示验证消息。

<html>
<head>
   <script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.3/jquery.min.js" integrity = "sha512-STof4xm1wgkfm7heWqFJVn58Hm3EtS31XFaagaa8VMReCXAkQnJZ+jEy8PCC/iT18dFy95WcExNHFTqLyp72eQ==" crossorigin = "anonymous" referrerpolicy = "no-referrer"></script>
</head>
<body>
   <h2>Using <i>jQuery </i> to check if the file input is empty or not</h2>
   <input type = "file" id= "fileInput" /><br /><br />
   <button id = "click" onClick = "validateFileInput()"> Click me </button>
   <p id = "output"> </p>
   <script>
      let output = document.getElementById("output");
      function validateFileInput() {
         let files = $("#fileInput")[0].files.length;
         if (files != 0) {
            output.innerHTML += "File is selected! <br/>";
         } else {
            output.innerHTML += "Please, select a file!<br>";
         }
      }
   </script>
</body>
</html>

用户学习了如何使用 JavaScript 或 JQuery 验证文件输入。在这两个示例中,我们都使用 id 访问了文件输入。但是,用户可以使用类名、标签名或名称访问文件输入,并检查"files"属性的长度以确保文件输入为空或选择了任何文件。


相关文章