Jquery validation plugin

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

JMRFan4LifeAsked:
Who is Participating?
 
Justin MathewsConnect With a Mentor Commented:
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
 
HainKurtSr. System AnalystCommented:
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
 
Justin MathewsCommented:
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
Cloud Class® Course: Microsoft Office 2010

This course will introduce you to the interfaces and features of Microsoft Office 2010 Word, Excel, PowerPoint, Outlook, and Access. You will learn about the features that are shared between all products in the Office suite, as well as the new features that are product specific.

 
JMRFan4LifeAuthor Commented:
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
 
Justin MathewsCommented:
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
 
HainKurtSr. System AnalystCommented:
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
 
JMRFan4LifeAuthor Commented:
the validation box is not being hidden after valid answers are entered for both examples above?!!
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.