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) }