tags:

views:

31

answers:

1

Hi there,

I have an issue, where by I am doing a simple form validation, that needs some custom stuff that the validation plugin could not do for me. Basically, I have a name, email and message field, all are required, but only email is really validated, the others just need to check if theyre not empty. Here is my current code:

$("#contactMe form").submit(function() {
    var email = $('.requiredEmail').val();
    if(email != 0)  {
        if(isValidEmailAddress(email))  {
            $('.requiredText').each(function() {
                thisVal = $(this).val();
                var $this = $(this);
                if(thisVal != 0) {
                    console.log('Valid Field: '+thisVal);
                    if ($(this) == $(this).parent(':last')) {
                        console.log('Last field, submit form here');
                    }
                }
            });
        } else {
            console.log('Email Not Valid');
        }
    } 
    return false;
});

Just to explain, I am first checking the email address is valid via the isValidEmailAddress function, which is working. Then I am going through using each(), all the requiredText fields and checking if theyre not empty. When I get to the last requiredText field, I want to submit the form using post or whatever.

if ($(this) == $(this).parent(':last')) { What I have there is obviously incorrect but I am not sure what can be used to check if it is the last in the each result set, and perform an action if true.

Can anybody help me out here?

Thanks in advance.

+3  A: 

each passes into your function index and element. Check index against the length of the set and you're good to go:

var len = $('.requiredText').length;
$('.requiredText').each(function(index, element) {
      thisVal = $(this).val();
      var $this = $(this);
      if(thisVal != 0) {
          console.log('Valid Field: '+thisVal);
          if (index == len - 1) {
              console.log('Last field, submit form here');
          }
      }
});
Jacob Relkin
yes jacob answer is generic ..
gov
@Ryan, See my updated answer.
Jacob Relkin
Ah yeah got it. Thanks heaps mate.
Ryan