Retourne une valeur lors de l’utilisation de jQuery.each ()?

Je veux retourner false et retourner de function si je trouve la première zone de texte vide

function validate(){ $('input[type=text]').each(function(){ if($(this).val() == "") return false; }); } 

et le code ci-dessus ne fonctionne pas pour moi 🙁 quelqu’un peut-il aider?

Vous sautez, mais dans la boucle intérieure , j’utiliserais plutôt un sélecteur pour votre contrôle spécifique “sans valeur”, comme ceci:

 function validate(){ if($('input[type=text][value=""]').length) return false; } 

Vous pouvez également définir le résultat au fur et à mesure que vous entrez dans la boucle et renvoyer le résultat de la boucle externe:

 function validate() { var valid = true; $('input[type=text]').each(function(){ if($(this).val() == "") //or a more complex check here return valid = false; }); return valid; } 

Vous pouvez le faire comme ça:

 function validate(){ var rv = true; $('input[type=text]').each(function(){ if($(this).val() == "") { rv = false; // Set flag return false; // Stop iterating } }); return rv; } 

Cela suppose que vous vouliez retourner true si vous ne le trouvez pas.

Vous constaterez peut-être qu’il s’agit d’une de ces situations où vous ne souhaitez pas utiliser each :

 function validate(){ var inputs = $('input[type=text]'); var index; while (index = inputs.length - 1; index >= 0; --index) { if (inputs[index].value == "") { // Or $(inputs[index]).val() == "" if you prefer return false; } } // (Presumably return something here, though you weren't in your example) }