Vérifiez tous les champs de saisie ont été remplis avec jQuery

J'ai 3 divs, chacun avec des champs de saisie de sélection et le bouton suivant. Je veux écrire un extrait de jQuery que lorsque le bouton suivant est cliqué, il vérifie que tous les champs de saisie DANS LA même division que le bouton ne sont pas nuls.

J'ai essayé ce qui suit sans aucune chance mais Im 100% certain est faux, je ne peux pas trouver l'information pertinente en ligne …

Http://jsfiddle.net/xG2KS/1/

Vous pouvez utiliser un filter pour réduire l'ensemble de tous input éléments de input à ceux qui sont vides et vérifier la length propriété de ce qui reste:

 $(".next").click(function() { var empty = $(this).parent().find("input").filter(function() { return this.value === ""; }); if(empty.length) { //At least one input is empty } }); 

Notez que la définition de vide dans le code ci-dessus est une chaîne vide. Si vous souhaitez traiter les espaces vides aussi vides, vous voudrez peut-être réduire la valeur avant de comparer.

Notez également qu'il n'est pas nécessaire de passer this dans jQuery à l'intérieur de la fonction de filter . L'élément DOM lui-même aura une propriété de value , et il est beaucoup plus rapide d'accéder à ce que, au lieu d'utiliser val .

Voici une violoncelle mise à jour .

 $('.next').click(function() { var emptyInputs = $(this).parent().find('input[type="text"]').filter(function() { return $(this).val() == ""; }); if (emptyInputs.length) { alert('Fail!'); } }); 
 $('.next').click(function() { var inputs = $(this).parent().find('input[value=""]'); if (!inputs.length) { // you have empty fields if this section is reached } });