Calling jquery validation valid on form element

12,480

I think valid() is only for an enitre form

Try using $.validate().element(item)

if (!$("#aspnet-form").validate().element( item ))
{
  isValid = false;
}  

http://docs.jquery.com/Plugins/Validation/Validator/element#element

Share:
12,480
David Burton
Author by

David Burton

Updated on June 04, 2022

Comments

  • David Burton
    David Burton almost 2 years

    I have a form where I am calling the valid() function on each form element separately. I have an field named "altemailaddress" that I set a rule to be "email" and required is false. However the valid() function returns false if there is no value in the input text box.

    jQuery("#aspnet-form").validate({
        onsubmit: false,
        rules: {
            prefix: "required",
            emailaddress: {
                required: true,
                email: true
            },
            altemailaddress: {
                required: false,
                email: true
            }
    
        },
        messages: {
            prefix: "Please enter a prefix",
            emailaddress: {
                required: "Please enter an email address",
                email: "Invalid email format"
            }
    
        }
    });
    
    var $group = jQuery(this).parents(".validationGroup");
        var isValid = true;
    
    
        $group.find(":input").each(function (i, item) {
            if (!jQuery(item).valid())
            {
    
                isValid = false;
            }           
    
        });
    

    As I loop through each item, I call the valid() function. If the rule for altemailaddress says require: false, it ignores it and returns false if no value is provided.

    If I just set up the validate plugin to validate on submit it works fine.

  • David Burton
    David Burton over 14 years
    This worked at first, then without changing any code, I tested again and now it doesn't work. I will have to try again
  • Alpha Codemonkey
    Alpha Codemonkey over 14 years
    make sure you are still using jQuery 1.3 I had some sites start failing yesterday because they automatically started using jQuery 1.4, and some of the plugins didnt work