web-dev-qa-db-fra.com

Comment vérifier si le fichier d'entrée est vide dans jQuery

Tout nouveau chez JS.
J'essaie de vérifier si l'élément input du fichier est vide lors de la soumission du formulaire avec jQuery/JavaScript. J'ai passé en revue de nombreuses solutions et rien ne fonctionne pour moi. J'essaie d'éviter le /c/fakepath (à moins qu'il n'y ait pas d'autre option)

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

Cela ne fonctionne pas:

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

Le seul moyen d'obtenir le nom de fichier est d'utiliser les éléments suivants:

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

S'il n'y a pas de fichier disponible, le code génère une erreur:

ne peut pas lire le nom de propriété d'undefined

ce qui est logique car le tableau n'est pas défini. mais je ne peux pas comprendre comment gérer les erreurs avec cela.

Comment saisir correctement l’élément d’entrée du fichier videoUploadFile, vérifier s’il est vide, émettre un message d’erreur s’il est vide?

84
user3753569

Il suffit de vérifier la longueur de la propriété fichiers , qui est un objet FileList contenu dans l'élément d'entrée

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

En voici la version jQuery:

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

Pour vérifier si le fichier d'entrée est vide ou non à l'aide de la propriété file length, vous devez spécifier index comme suit:

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

Questions: comment vérifier que le fichier est vide ou non?

Réponse: J'ai ce problème en utilisant ce code 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>
2
Adnan Limdiwala