• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 255
  • Last Modified:

jQuery ValidationEngine empty validation though not set to required

I have a field:
<input type="text" id="AlternateEmailaddress" name="AlternateEmailaddress" 
       value="" class="validate[custom[email],maxSize[50]] input25" 
       parent_tab="tab2">

Open in new window

This is the custom email validation rule:
"email": {
    // Shamelessly lifted from Scott Gonzalez via the Bassistance Validation plugin http://projects.scottsplayground.com/email_address_validation/
    "regex": /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i,
    "alertText": "* Invalid email address"
},

Open in new window

It is NOT required, however, the email rule gets triggered.

I also have password and confirm password fields on the same page and they are not required and their rules also fire.

How do I keep it from doing this if this fields are not required?

jsFiddle Demo of problem:
http://jsfiddle.net/3Pge2/8/
0
Eddie Shipman
Asked:
Eddie Shipman
  • 2
1 Solution
 
Eddie ShipmanAll-around developerAuthor Commented:
I have a workaround. I assign the validation rule on-the-fly and remove it if the value is blank. Tested and working.
$("#AlternateEmailaddress").change(function () {
	if($("#AlternateEmailaddress").val().trim() != "") {
		$("#AlternateEmailaddress").addClass("validate[custom[email],maxSize[50]]")
		$("#my_info").validationEngine('validate');
	} else {
		$("#AlternateEmailaddress").removeClass("validate[custom[email],maxSize[50]]")
	}
}); 

Open in new window

0
 
Eddie ShipmanAll-around developerAuthor Commented:
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now