codice:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>TEST</title>
</head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript" src="http://jzaefferer.github.com/jquery-validation/jquery.validate.js"></script>

<script type="text/javascript">


$(document).ready(function(){

$('#val_form').validate({
		rules: {
			nome: {
				required: true,
				minlength: "2"	
			},
			cognome: {
				required: true,
				minlength: "2"
			}	
		},
		
		messages: {
			nome: {
				required: "Campo obbligatorio!",
				minlength: "Nome troppo corto!"
			}	
		}
	});
$('#invio').live({//apro live
click:function(){//apro click
	$.ajax({//apro ajax
		type:"POST",
		url: "check.php",
		data: $("#val_form").serialize(),
			success:function(){//apro success
				$('#validation2').html(msg);
			}//chiudo success
		});//chiudo ajax
}//chiudo click
})//chiudo live
});
</script>
<body>

<div id="validation">
<form method="post" id="val_form" name="val_form" action="">
<label for="nome">Nome: *</label>
<input id="nome" name="nome" type="text" required/>


<label for="cognome">Cognome: * </label>
<input id="cognome" name="cognome" type="text" required/>

<div id="button">
	<input type="submit" id="invio" value="invia"/>
</div>
<div id="validation2"></div>
</form>
</div>


</body>
</html>
Prova cosi o cambiato Event Handler usando live serialize() per recuperare i dati del form e id del tasto submit (la parola submit è riservata meglio non usarla per nomi o id)