/* jquery validate requires you to name input fields to work correctly. phoneUS validation in this example requires you to load additional methods script that comes with jquery validate. */
$(document).ready(function () {
$.validator.addMethod('hasAlpha', function (value) {
return /(?:[A-Za-z]+)/.test(value);
}, 'Please enter at least one letter.');
$.validator.addMethod('hasDigit', function (value) {
return /(?:\d+)/.test(value);
}, 'Please enter at least one number.');
$.validator.addMethod('hasLower', function (value) {
return /(?:[a-z]+)/.test(value);
}, 'Please enter at least one lowercase character.');
$.validator.addMethod('hasUpper', function (value) {
return /(?:[A-Z]+)/.test(value);
}, 'Please enter at least one uppercase character.');
$.validator.addMethod('hasSpecial', function (value) {
return /(?:[$#@$!%*?&])/.test(value);
}, 'Please enter at least one special character.');
$.validator.addMethod("notEqualTo", function (value, element, param)
{
var target = $(param);
if (value)
return value != target.val();
else
return this.optional(element);
}, "Repeated field");
$("#vipForm").validate(
{
rules:
{
firstName:
{
required: true
},
lastName:
{
required: true
},
organization:
{
required: true
},
email:
{
required: true,
email: true
},
username:
{
required: true
},
password:
{
notEqualTo: '#username',
required: true,
hasDigit: true,
hasAlpha: true,
hasUpper: true,
hasLower: true,
hasSpecial: true,
rangelength: [6, 15]
},
confirmPassword:
{
required: true,
equalTo: '#password'
},
phone:
{
required: true,
phoneUS: true
},
address:
{
required: true
},
address2:
{
required: true
},
city:
{
required: true
},
state:
{
required: true
},
zip:
{
required: true
},
month:
{
required: true
},
day:
{
required: true
},
year:
{
required: true
},
gender:
{
required: true
},
confirmation:
{
required: true
}
},
groups: {
mdy: "month day year"
},
messages: {
"password": {
notEqualTo: 'Password cant be same as username'
},
"month": {
required: "Month is required"
},
"day": {
required: "Day is required"
},
"year": {
required: "Year is required"
}
},
errorPlacement: function (error, element) {
if (element.attr("name") == "month" || element.attr("name") == "day" || element.attr("name") == "year") {
error.insertAfter("#MDY");
} else if (element.attr("name") == "gender") {
error.insertAfter("#gender");
} else if (element.attr("name") == "confirmation") {
error.insertAfter("#confirmation");
} else {
error.insertAfter(element);
}
}
}
);
});