Meilleur moyen de vérifier si certaines entrées de type fichier sont vides dans jquery?
Je sais que c'est une question simple, mais j'ai besoin de conseils de gens d'expérience.
J'ai 3 d'entrée type de fichier comme:
<input type="file" name="1-files" />
<input type="file" name="2-files" />
<input type="file" name="3-files" />
Je sélectionne toutes les entrées (sur ma page j'ai aussi d'autres entrées de type file) dont le nom se termine par "-les fichiers" ( je l'ai écrit dans Google Chrome console):
$("input[type='file'][name*='-files']").length
Ok. - Je sélectionner un fichier à l'aide de 1-files
d'entrée. Après, j'ai exécutez le code suivant dans Google Chrome console:
$("input[type='file'][name*='-files']:empty").length
Je m'attends à être 2
mais apparaît 3
.
Pouvez-vous me dire pourquoi ?
Je veux obtenir tous les éléments d'entrée type de fichier dont les valeurs sont vides. J'ai utilisé à court moyen du sélecteur :empty
mais il ne semble pas fonctionner correctement.
Bien sûr, je pourrais utiliser
var empty_count = 0;
$.each($("input[type='file'][name*='-files']"), function(k, v){
if($(this).val() === '')
empty_count++;
});
Mais je veux le plus court chemin pour le faire sans $.each
.
Merci
source d'informationauteur Snake Eyes | 2013-06-11
Vous devez vous connecter pour publier un commentaire.
Il correspond à trois parce que
:empty
correspond à un élément ayant pas de descendants, et je suis de l'élément d'entrée, par définition, ne peut pas avoir de descendants (de sorte que tous sont vides, et donc correspondre à la:empty
sélecteur).Pour trouver ces éléments sans les fichiers sélectionnés, je vous suggère de:
Références:
vide
sélecteur.filter()
.vous pouvez utiliser
filter
place de$.each
..considérer les codes suivants, j'ai toujours utilisé ce :