(function() { 'use strict'; 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"); // Checkout form validation $("#checkout").each(function() { $(this).validate({ highlight: function(element) { $(element).closest('.form-group').removeClass('has-success').addClass('has-error'); }, success: function(element) { $(element).closest('.form-group').removeClass('has-error'); }, errorPlacement: function( error, element ) { var placement = $(element).parent(); if ($(element).attr('name')== 'address_val[]') { var placement = $(element).parent().parent(); } placement.append(error); }, rules : { address_line1: { required: "#address_incorrect:checked" }, address_city: { required: "#address_incorrect:checked" }, address_state: { required: "#address_incorrect:checked", stateUS: true }, address_zip: { required: "#address_incorrect:checked" } }, messages : { 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." } } }); }); }).apply(this, [jQuery]); $("#address_incorrect").click(function(){ if ($('#address_incorrect').prop('checked') ) { $("#address_info").show(); $("#address_line1").val(""); $("#address_line2").val(""); $("#address_city").val(""); $("#address_state").val(""); $("#address_zip").val(""); } else { $("#address_info").hide(); } // Uncheck #address_correct $("#address_correct").prop( "checked", false ); }); $("#address_correct").click(function(){ // Uncheck #address_incorrect $("#address_incorrect").prop("checked", false); if ($('#address_correct').prop('checked') ) { $("#address_info").hide(); $("#address_line1").val($("#o_address1").val()); $("#address_line2").val($("#o_address2").val()); $("#address_city").val($("#o_city").val()); $("#address_state").val($("#o_state").val()); $("#address_zip").val($("#o_zip").val()); } });