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)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>![]()