Solved

Jquery validation plugin

Posted on 2010-11-29
7
955 Views
Last Modified: 2012-05-10
Hey,

i came across this jquery validation and was wondering if i could get a few quick pointers.

i am trying to show my own customizable error message when there is an invalid field triggered on submit. i have attached the code i am using below.

Thanks!
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
                    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
  <script type="text/javascript" src="http://dev.jquery.com/view/trunk/plugins/validate/lib/jquery.delegate.js"></script>
<script type="text/javascript" src="http://dev.jquery.com/view/trunk/plugins/validate/jquery.validate.js"></script>
<script type="text/javascript">
jQuery.validator.setDefaults({
	debug: true,
	success: "valid"
});;
</script>

  <script>
  $(document).ready(function(){
	$('.validation-summary').hide();
    $("#myform").validate({
  rules: {
    email: {
      required: true,
      email: true
    }
  }
});
  });
  </script>
  <style>#email { margin-left: .5em; float: left; }
  	#email, label { float: left; font-family: Arial, Helvetica, sans-serif; font-size: small; }
	br { clear: both; }
	input { border: 1px solid black; margin-bottom: .5em;  }
	input.error { border: 1px solid red; }
	label.error {
		background: url('http://dev.jquery.com/view/trunk/plugins/validate/demo/images/unchecked.gif') no-repeat;
		padding-left: 16px;
		margin-left: .3em;
	}
	label.valid {
		background: url('http://dev.jquery.com/view/trunk/plugins/validate/demo/images/checked.gif') no-repeat;
		display: block;
		width: 16px;
		height: 16px;
	}
</style>
</head>
<body>
  
<form id="myform">
<div class="validation-summary">
    <span class="icon-alert"></span><span class="headline">Whoops!</span>
    <p>Please revise the areas with red messages below to continue.</p>
</div>

  <label for="email">Required, email: </label>
  <input class="left" id="email" name="email" />
  <br/>
  <input type="submit" value="Validate!" />
</form>

</body>
</html>

Open in new window

0
Comment
Question by:JMRFan4Life
  • 3
  • 2
  • 2
7 Comments
 
LVL 51

Expert Comment

by:HainKurt
Comment Utility
use these to customize

      messages: {
            required: "This field is required.",
            remote: "Please fix this field.",
            email: "Please enter a valid email address.",
            url: "Please enter a valid URL.",
            date: "Please enter a valid date.",
            dateISO: "Please enter a valid date (ISO).",
            dateDE: "Bitte geben Sie ein gültiges Datum ein.",
            number: "Please enter a valid number.",
            numberDE: "Bitte geben Sie eine Nummer ein.",
            digits: "Please enter only digits",
            creditcard: "Please enter a valid credit card number.",
            equalTo: "Please enter the same value again.",
            accept: "Please enter a value with a valid extension.",
            maxlength: $.format("Please enter no more than {0} characters."),
            minlength: $.format("Please enter at least {0} characters."),
            rangelength: $.format("Please enter a value between {0} and {1} characters long."),
            range: $.format("Please enter a value between {0} and {1}."),
            max: $.format("Please enter a value less than or equal to {0}."),
            min: $.format("Please enter a value greater than or equal to {0}.")
      },
$(document).ready(function(){

	$('.validation-summary').hide();

    $("#myform").validate({

  rules: {

    email: {

      required: true,

      email: true,

      messages: {

      required: "HK: This field is required.",

      email: "HK: Email is required!"

      }

    }

  }

});

  });

Open in new window

0
 
LVL 16

Expert Comment

by:jmatix
Comment Utility
Add messages also to your validate() call as below:
<script>

$(document).ready(function(){

$('.validation-summary').hide();

$("#myform").validate({

rules: {

email: {

  required: true,

  email: true

}

},

messages: {

	email: {

	  required: "This field is kind of required.",

	  email: "Invalid format. Should be xyz@abc.com"

	}

}

});

});

</script>

Open in new window

0
 

Author Comment

by:JMRFan4Life
Comment Utility
is there a way to trigger this div to show on validate.

<div class="validation-summary">
    <span class="icon-alert"></span><span class="headline">Whoops!</span>
    <p>Please revise the areas with red messages below to continue.</p>
</div>
0
How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

 
LVL 16

Expert Comment

by:jmatix
Comment Utility
Add an invalidHandler as:
<script>

  $(document).ready(function(){

	$('.validation-summary').hide();

    $("#myform").validate({

    invalidHandler: function(form, validator) {

      var errors = validator.numberOfInvalids();

	  alert(errors);

      if (errors) {

        $(".validation-summary").show();

      } else {

        $(".validation-summary").hide();

      }

    },

  rules: {

    email: {

      required: true,

      email: true

    }

  },

	messages: {

		email: {

		required: "This field is kind of required.",

		email: "Invalid format. Should be xyz@abc.com"

		}

	}

});

Open in new window

0
 
LVL 51

Expert Comment

by:HainKurt
Comment Utility
here it is:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 

                    "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

  <script src="http://code.jquery.com/jquery-latest.js"></script>

  <script type="text/javascript" src="http://dev.jquery.com/view/trunk/plugins/validate/lib/jquery.delegate.js"></script>

<script type="text/javascript" src="http://dev.jquery.com/view/trunk/plugins/validate/jquery.validate.js"></script>

<script type="text/javascript">

jQuery.validator.setDefaults({

	debug: true,

	success: "valid"

});;

</script>



  <script>

  function chkForm(){

    document.getElementById("divSummary").style.display = (!$("#myform").valid())? "" : "none";

  };

  $(document).ready(function(){

	$('.validation-summary').hide();



  $("#myform").validate({

  rules: {

    email: {

      required: true,

      email: true

    },

    nick: {

      required: true

    }

  },

  messages: {

    email:{

      required: "(email) : This field is required.",

      email: "(email) : Email is required!"

    },

    nick:{

      required: "(nick): This field is required."

    }

  }

	});

	

  });

  </script>

  <style>#email { margin-left: .5em; float: left; }

  	#email, label { float: left; font-family: Arial, Helvetica, sans-serif; font-size: small; }

	br { clear: both; }

	input { border: 1px solid black; margin-bottom: .5em;  }

	input.error { border: 1px solid red; }

	label.error {

		background: url('http://dev.jquery.com/view/trunk/plugins/validate/demo/images/unchecked.gif') no-repeat;

		padding-left: 16px;

		margin-left: .3em;

	}

	label.valid {

		background: url('http://dev.jquery.com/view/trunk/plugins/validate/demo/images/checked.gif') no-repeat;

		display: block;

		width: 16px;

		height: 16px;

	}

</style>

</head>

<body>

  

<form id="myform" onSubmit="chkForm()">

<div class="validation-summary" id="divSummary">

    <span class="icon-alert"></span><span class="headline">Whoops!</span>

    <p>Please revise the areas with red messages below to continue.</p>

</div>



  <label for="nick">Required, nickname: </label>

  <input class="left" id="nick" name="nick" />

  <br/>

  <label for="email">Required, email: </label>

  <input class="left" id="email" name="email" />

  <br/>

  <input type="submit" value="Validate!" />

</form>



</body>

</html>

Open in new window

0
 

Author Comment

by:JMRFan4Life
Comment Utility
the validation box is not being hidden after valid answers are entered for both examples above?!!
0
 
LVL 16

Accepted Solution

by:
jmatix earned 500 total points
Comment Utility
Change:

jQuery.validator.setDefaults({
      debug: true,
      success: "valid"
});

To:

jQuery.validator.setDefaults({
      debug: true,
      success: "valid",
      unhighlight: function(element, errorClass, validClass){
            $(element).removeClass(errorClass).addClass(validClass);
            $('.validation-summary').hide();
      }

});
0

Featured Post

Enabling OSINT in Activity Based Intelligence

Activity based intelligence (ABI) requires access to all available sources of data. Recorded Future allows analysts to observe structured data on the open, deep, and dark web.

Join & Write a Comment

Suggested Solutions

So you have coded your own WordPress plugin and now you want to allow users to upload images to a folder in the plugin folder rather than the default media location? Follow along and this article will show you how to do just that!
This article explains how to prepare an HTML email signature template file containing dynamic placeholders for users' Azure AD data. Furthermore, it explains how to use this file to remotely set up a department-wide email signature policy in Office …
In this tutorial viewers will learn how to embed videos in a webpage using HTML5. Ensure your DOCTYPE declaration is set to HTML5: "<!DOCTYPE html>": Use the <video> tag to insert a video. Define the src as the URL of your video; this is similar to …
The viewer will learn how to create a basic form using some HTML5 and PHP for later processing. Set up your basic HTML file. Open your form tag and set the method and action attributes.: (CODE) Set up your first few inputs one for the name and …

772 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now