(function() { 'use strict'; jQuery.validator.addMethod("regex", function(value, element, regexp) { if (regexp.constructor != RegExp) regexp = new RegExp(regexp); else if (regexp.global) regexp.lastIndex = 0; return this.optional(element) || regexp.test(value); },"Check your input. The format is not valid." ); jQuery.validator.addMethod("phoneUS", function(phone_number, element) { phone_number = phone_number.replace(/\s+/g, ""); return this.optional(element) || phone_number.length > 9 && phone_number.match(/^(\+?1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/); }, "Please specify a valid phone number"); jQuery.validator.addMethod("stateUS", function (state, element) { return this.optional(element) || state.match(/^(A[LKSZRAEP]|C[AOT]|D[EC]|F[LM]|G[ANU]|HI|I[ADLN]|K[SY]|LA|M[ADEHINOPST]|N[CDEHJMVY]|O[HKR]|P[ARW]|RI|S[CD]|T[NX]|UT|V[AIT]|W[AIVY])$/); }, "Please specify a valid state"); // Registration form validation $("#registerForm").validate({ rules: { memberid: { required: true }, memberid2: { required: true, equalTo: '#memberid' }, first_name: { required: true }, last_name: { required: true }, address_line1: { required: true }, address_city: { required: true }, address_state: { required: true, stateUS: true, }, address_zip: { required: true }, home_phone: { required: true, phoneUS: true }, email_address: { required: true, email: true }, username: { required: true, regex: "^[a-zA-Z0-9_]*$", remote: { url: '/php/validate-username.php', // fill in the file location for verification type: 'post', // transmission data: {// data transmission username:function(){ return $('#username').val(); } } } }, password: { required: true, minlength: 10, regex: "^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{10,}$" }, confirmpwd: { required: true, equalTo: '#password' } }, messages: { memberid: { required: "Member ID is a required field." }, memberid2: { required: "Confirm Member ID is a required field.", equalTo: "The Member ID fields must match." }, first_name: { required: "First Name is a required field." }, last_name: { required: "Last Name is a required field." }, address_line1: { required: "Address is a required field." }, address_city: { required: "City is a required field." }, address_state: { required: "A valid State two-letter code is required." }, address_zip: { required: "Zip Code is a required field." }, home_phone: { required: "Home Phone is required.", phoneUS: "Home Phone must be valid." }, email_address: { required: "Email Address is a required field.", email: "Please enter a valid email address." }, username: { required: "Username is a required field.", regex: "The username is not the appropriate format.", remote: "This username is already being used." }, password: { required: "Password is required", minlength: "Password should be at least 10 characters.", regex: "The password is not the appropriate format." }, confirmpwd: { required: "Password confirmation is required.", equalTo: "The passwords do not match." } } }); // Log in form validation $("#loginForm").validate({ rules: { user: "required", password: "required" }, messages: { user: { required: "Username is a required field." }, password: { required: "Password is a required field." } } }); // Recover Password form validation $("#retrievePW").validate({ rules: { email_address: { required: true, email: true, remote: { url: '/php/validate-memberemail.php', // fill in the file location for verification type: 'post' // transmission } }, userid: { required: true, remote: { url: '/php/validate-username-exists.php', // fill in the file location for verification type: 'post', // transmission data: {// data transmission email_address:function(){ return $("#email_address").val(); } } } } }, messages: { email_address: { required: "Email Address is a required field.", email: "Please enter a valid email address.", remote: "The email address provided is not valid." }, userid: { required: "Username is a required field.", remote: "Username is not valid." } } }); // Recover Password form validation $("#retrievePW2").validate({ rules: { user: { required: true, remote: { url: 'php/validate-username-exists.php', // fill in the file location for verification type: 'post', // transmission data: {// data transmission user:function(){ return $("#userid").val(); } } } } }, messages: { user: { required: "Username is a required field.", remote: "Username is not valid." } } }); // Recover Username form validation $("#retrieveUser").validate({ rules: { email_address: { required: true, email: true, remote: { url: '/php/validate-memberemail.php', // fill in the file location for verification type: 'post' // transmission } } }, messages: { email_address: { required: "Email Address is a required field.", email: "Please enter a valid email address.", remote: "The email address provided is not valid." } } }); // Change Password form validation $("#changePW").validate({ rules: { password: { required: true, minlength: 10, regex: "^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{10,}$" }, confirmpwd: { required: true, equalTo: '#password' } }, messages: { password: { required: "Password is required", minlength: "Password should be at least 10 characters.", regex: "The password is not the appropriate format." }, confirmpwd: { required: "Password confirmation is required.", equalTo: "The passwords do not match." } } }); }).apply(this, [jQuery]);