Return a value when using jQuery.each()?

Prashant Lakhlani picture Prashant Lakhlani · Sep 29, 2010 · Viewed 45.3k times · Source

I want to return false and return from function if I find first blank textbox

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

and above code is not working for me :( can anybody help?

Answer

Nick Craver picture Nick Craver · Sep 29, 2010

You are jumping out, but from the inner loop, I would instead use a selector for your specific "no value" check, like this:

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

Or, set the result as you go inside the loop, and return that result from the outer loop:

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