tarnfeld
tarnfeld

Reputation: 26556

jQuery Filter Help

What is wrong with this code...

var objects = $(".validated").filter(function(){
                                   return $(this).attr("name") == 'name';
                             }).filter(function (){
                                   return $(this).val() == '';
                             });

Its really bugging me :(

Upvotes: 1

Views: 536

Answers (2)

jitter
jitter

Reputation: 54605

var objects = $(".validated").filter(function() {
    var ele = $(this);
    return ele.attr("name") == 'name' || ele.val() == '';
});

Upvotes: 2

a432511
a432511

Reputation: 1905

Filter will remove an element when the function returns false. So you want it to return false when you encounter an element with name="name" and when it is empty.

var objects = $(".validated").filter(function(){
                                   // Will return false when name="name"
                                   return $(this).attr("name") != 'name';
                             }).filter(function (){
                                   // Will return false when the value is blank
                                   // Added trim to ensure that blank spaces
                                   // are interpreted as a blank value
                                   return $.trim($(this).val()) != '';
                             });

A shortened version would be:

var objects = $(".validated").filter(function(){
                  // Will return false when name="name" or blank value
                  return $(this).attr("name") != 'name' && $.trim($(this).val()) != '';
              });

Upvotes: 0

Related Questions