Skip to content
victorjonsson edited this page Apr 19, 2011 · 57 revisions

This plugin was created to minimize javascript logic in the html code when dealing with front-end validation of form data. Live example can be viewed here

Usage example

<form action="" onsubmit="return $(this).validate()">
  <p>
    Name (4 characters minimum):
    <input name="user" data-validation="validate_min_length length4" />
  </p>
  <p>
    Birthdate (yyyy-mm-dd): 
    <input name="birth" data-validation="validate_birthdate" />
  </p>
  <p>
    Website: 
    <input name="website" data-validation="validate_url" />
  </p>
  <p>
    <input type="submit" />
  </p>
</form>

Features

  • validate_url
  • validate_dateyyyy-mm-dd
  • validate_birthdateyyyy-mm-dd, not allowing dates in the future or dates that is older then 122 years
  • validate_email
  • validate_timehh:mm
  • validate_domaindomain.com
  • validate_phoneatleast 7 digits only one hyphen and plus allowed
  • validate_swemobvalidate that the value is a swedish mobile telephone number
  • validate_float
  • validate_int
  • validate_lengthValidate that input length is in given range (length3-20)
  • validate_confirmation
  • validate_spamcheck
  • validate_swesec - validate swedish social security number
  • requiredno validation except that a value has to be given
  • validate_custom - *Validate value against regexp (validate_custom regexp/^[a-z]{2} [0-9]{2}$/)

Customization

var myConf = {
	// Name of element attribute holding the validation rules (default is data-validation)
	validationRuleAttribute : 'class',

	// Names of inputs not to be validated even though the element attribute containing the
	// validation rules tells us to
	ignore : ['som-name', 'other-name'],

	// Class that will be put on elements which value is invalid
	errorElementClass : 'error', 

	// Border color of elements which value is invalid, empty string to not change border color
	borderColorOnError : '#FFF', 

	// Class of div container showing error messages
	errorMessageClass : 'error_message',

	// Position of error messages. Can be either "top" meaning in the top of the form
	// or "element" meaning that each error message will be displayed beside the input
	// field that it is refering to
	errorMessagePosition : 'top' 
};

var myLang = {
	errorTitle : 'Något gick fel', 
	requiredFields : 'Du fyllde inte i alla fält markerade med *'
};

$('#my_form').submit(function() {
	return $(this).validate(myLang, myConf);
});

Simple captcha example

<?php
session_start();
if( isset($_POST['captcha']) && isset($_SESSION['captcha'])) {
  if($_POST['captcha'] != ($_SESSION['captcha'][0]+$_SESSION['captcha'][1]))
    die('Invalid captcha answer');  // client does not have javascript enabled
}

$_SESSION['captcha'] = array( mt_rand(0,9), mt_rand(1, 9) );

?>
<html>
....
<form action="" onsubmit="return $(this).validate();">
  <p>
    What is the sum of <?=$_SESSION['captcha'][0]?> + <?=$_SESSION['captcha'][1]?>? (security question)
    <input name="captcha" data-validation="validate_spamcheck captcha<?=( $_SESSION['capthca'][0] + $_SESSION['captcha'][1] )?>"
  </p>
  <p><input type="submit" /></p>
</form>
...
</html>

Input length restriction

<p>
  History (<span id="maxlength">50</span> characters left)
  <textarea rows="3" id="area"></textarea>
</p>
<script type="text/javascript">
  $('#area').restrictLength($('#maxlength'));
</script>

Password confirmation example

  <p>Password: <input type="password" name="pass" data-validation="validate_confirmation" /></p>
  <p>Confirm password: <input type="password" name="pass_confirmation" /></p>
Clone this wiki locally