Open In App

How to detect when cancel is clicked on file input using JavaScript ?

This article describes the method to handle a situation when the user tries to input a file and later fails to upload the file. It gives the status to the user that the file is not uploaded. This may be useful in situations when an important file needs to be submitted or the application requires the file for its functionality. 

Note: This method works best with WebKit browsers such as Google Chrome and Safari. It may not work reliably with Mozilla Firefox.



Example:

HTML Code: The following code is defines in the HTML of the page.






<input type='file' id='theFile' onclick="initialize()" />

Explanation:

JavaScript Code:




// Get the file input element
var theFile = document.getElementById('theFile');
  
// Define a function to be called
// when the input is focused
function initialize() {
    document.body.onfocus = checkIt;
    console.log('initializing');
}
      
// Define a function to check if
// the user failed to upload file
function checkIt() {
    // Check if the number of files
    // is not zero
    if (theFile.value.length) {
      alert('Files Loaded');
    }
    // Alert the user if the number
    // of file is zero
    else {
      alert('Cancel clicked');
    }
    document.body.onfocus = null;
    console.log('checked');
}        

Explanation for the initialize() function:

Explanation for checkIt() function:

Complete Code: In this section, we will combine the above two sections of code to detect when cancel is clicked on file input.




<!DOCTYPE html>
<html lang="en">
  
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content=
        "width=device-width, initial-scale=1.0">
  
    <title>
        How to detect when cancel 
        is clicked on file input?
    </title>
</head>
  
<body>
    <input type='file' id='theFile' 
            onclick="initialize()" />
  
    <script>
        // Get the file input element
        var theFile = 
            document.getElementById('theFile');
  
        // Define a function to be called
        // when the input is focused
        function initialize() {
            document.body.onfocus = checkIt;
            console.log('initializing');
        }
  
        // Define a function to check if
        // the user failed to upload file
        function checkIt() {
  
            // Check if the number of files
            // is not zero
            if (theFile.value.length) {
                alert('Files Loaded');
            }
              
            // Alert the user if the number
            // of file is zero
            else {
                alert('Cancel clicked');
            }
            document.body.onfocus = null;
            console.log('checked');
        }        
    </script>
</body>
  
</html>

Output:


Article Tags :