Вот это submitHandler: function() { console.log('com'); } надо поместить внутрь обработчика. У меня вот так было: $(function() { $('#contact :text:first').focus(); $( "#contact" ).validate({ submitHandler: function() { // $('#contact :button').focus(); var data = $('#contact').serialize(); $.ajax ({ url: 'mail.php', type: 'POST', data: data, beforeSend: function () { $('#submit').attr('disabled',true); }, success: function (res) { if ( res == 0 ) { $('#contact').find('input:not(#submit),textarea').val (''); $('#submit').attr('disabled',false) } else { alert ('Ошибка отправки'); } }, }); }, rules: { name: { required: true, rangelength: [3,20] }, phone: { required: true, rangelength: [5,20] }, email: { required: true, email: true, rangelength: [6,20] }, message: { required: true, rangelength: [20,300] }, }, messages: { name: { required: "Пожалуйста введите имя", rangelength: "Требуется ввести имя от 3 до 20 символов" }, phone: { required: "Пожалуйста введите номер телефона", rangelength: "Требуется ввести от 5 до 20 символов" }, email: { required: "Пожалуйста введите email", email: "Введите корректный email", minlength: "Требуется ввести от 6 до 20 символов" }, message: { required: "Пожалуйста введите сообщение", rangelength: "Требуется ввести от 20 до 300 символов" } }, }); });