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.