/lib/jquery-validate/demo/marketo/mktSignup.js
JavaScript | 125 lines | 110 code | 13 blank | 2 comment | 16 complexity | d777b466de5350a27f1cbf2884d25e59 MD5 | raw file
Possible License(s): LGPL-2.1, Apache-2.0, BSD-3-Clause
- $(document).ready(function(){
-
- jQuery.validator.addMethod("password", function( value, element ) {
- var result = this.optional(element) || value.length >= 6 && /\d/.test(value) && /[a-z]/i.test(value);
- if (!result) {
- element.value = "";
- var validator = this;
- setTimeout(function() {
- validator.blockFocusCleanup = true;
- element.focus();
- validator.blockFocusCleanup = false;
- }, 1);
- }
- return result;
- }, "Your password must be at least 6 characters long and contain at least one number and one character.");
-
- // a custom method making the default value for companyurl ("http://") invalid, without displaying the "invalid url" message
- jQuery.validator.addMethod("defaultInvalid", function(value, element) {
- return value != element.defaultValue;
- }, "");
-
- jQuery.validator.addMethod("billingRequired", function(value, element) {
- if ($("#bill_to_co").is(":checked"))
- return $(element).parents(".subTable").length;
- return !this.optional(element);
- }, "");
-
- jQuery.validator.messages.required = "";
- $("form").validate({
- invalidHandler: function(e, validator) {
- var errors = validator.numberOfInvalids();
- if (errors) {
- var message = errors == 1
- ? 'You missed 1 field. It has been highlighted below'
- : 'You missed ' + errors + ' fields. They have been highlighted below';
- $("div.error span").html(message);
- $("div.error").show();
- } else {
- $("div.error").hide();
- }
- },
- onkeyup: false,
- submitHandler: function() {
- $("div.error").hide();
- alert("submit! use link below to go to the other step");
- },
- messages: {
- password2: {
- required: " ",
- equalTo: "Please enter the same password as above"
- },
- email: {
- required: " ",
- email: "Please enter a valid email address, example: you@yourdomain.com",
- remote: jQuery.validator.format("{0} is already taken, please enter a different address.")
- }
- },
- debug:true
- });
-
- $(".resize").vjustify();
- $("div.buttonSubmit").hoverClass("buttonSubmitHover");
-
- if ($.browser.safari) {
- $("body").addClass("safari");
- }
-
- $("input.phone").mask("(999) 999-9999");
- $("input.zipcode").mask("99999");
- var creditcard = $("#creditcard").mask("9999 9999 9999 9999");
-
- $("#cc_type").change(
- function() {
- switch ($(this).val()){
- case 'amex':
- creditcard.unmask().mask("9999 999999 99999");
- break;
- default:
- creditcard.unmask().mask("9999 9999 9999 9999");
- break;
- }
- }
- );
-
- // toggle optional billing address
- var subTableDiv = $("div.subTableDiv");
- var toggleCheck = $("input.toggleCheck");
- toggleCheck.is(":checked")
- ? subTableDiv.hide()
- : subTableDiv.show();
- $("input.toggleCheck").click(function() {
- if (this.checked == true) {
- subTableDiv.slideUp("medium");
- $("form").valid();
- } else {
- subTableDiv.slideDown("medium");
- }
- });
-
-
- });
-
- $.fn.vjustify = function() {
- var maxHeight=0;
- $(".resize").css("height","auto");
- this.each(function(){
- if (this.offsetHeight > maxHeight) {
- maxHeight = this.offsetHeight;
- }
- });
- this.each(function(){
- $(this).height(maxHeight);
- if (this.offsetHeight > maxHeight) {
- $(this).height((maxHeight-(this.offsetHeight-maxHeight)));
- }
- });
- };
-
- $.fn.hoverClass = function(classname) {
- return this.hover(function() {
- $(this).addClass(classname);
- }, function() {
- $(this).removeClass(classname);
- });
- };