jQuery Validate with icons
by katalin_2003
HTML
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.0/jquery.validate.min.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.0/additional-methods.js"></script>
<form id="loanRequestDetailsForm">
<input type="text" name="field1" />
<br/>
<input type="text" class="pw" name="password" id="password" />
<br/>
<input type="text" class="pw" name="confirmpassword" />
<br/>
<input type="text" name="field2" />
<br/>
<input type="submit" />
</form>
<a id="docs" href="http://docs.jquery.com/Plugins/Validation" target="_blank">Validation Documentation</a>
CSS
#docs {
display: block;
position: fixed;
bottom: 0;
right: 0;
}
.passError {
background:url("http://jquery.bassistance.de/validate/demo/images/unchecked.gif") no-repeat 0px 0px;
padding-left: 16px;
}
.passValid {
background:url("http://jquery.bassistance.de/validate/demo/images/checked.gif") no-repeat 0px 0px;
padding-left: 16px;
}
JavaScript
$(document).ready(function() {
jQuery.validator.addMethod('mypassword', function(value, element) {
return this.optional(element) || (value.match(/[A-Z]/) && value.match(/[0-9]/));
}, 'Password must contain at least one capital and one number.');
$('#loanRequestDetailsForm').validate({ // initialize the plugin
errorPlacement: function(error, element) {
error.insertAfter(element);
if (element.hasClass('pw')) {
element.next().removeClass('passValid').addClass('passError');
}
},
success: function(label) {
if (label.prev().hasClass('pw')) {
label.text("ok!");
}
},
highlight: function(element, errorClass, validClass) {
if ($(element).hasClass('pw')) {
$(element).next().removeClass('passValid').addClass('passError');
} else {
$(element).addClass(errorClass).removeClass(validClass);
}
},
unhighlight: function(element, errorClass, validClass) {
if ($(element).hasClass('pw')) {
$(element).next().removeClass('passError').addClass('passValid');
} else {
$(element).removeClass(errorClass).addClass(validClass);
}
},
rules: {
field1: {
required: true,
minlength: 5
},
password: {
required: true,
minlength: 7,
mypassword: true
},
confirmpassword: {
required: true,
//minlength: 7, // <- redundant
equalTo: "#password"
},
field2: {
required: true,
minlength: 5
}
},
messages: {
password: {
required: "Please provide a password",
minlength: "Your password must be at least {0} characters long"
},
confirmpassword: {
required: "Please provide a password",
equalTo: "Please enter the same password as above"
}
},
submitHandler: function(form) { // for demo
alert('valid form submitted'); // for demo
return false; // for demo
...