Это потому, что вы прикрепили сообщение ajax к onClick.Он запускает ajax независимо от сценария проверки.Используйте что-то вроде
$('#yourlink').click(function(e){
if (aVariableThatIndicatesPresenceOfErrors) {
e.preventDefault()
} else {
submit_form(posturl)
}
})
Конечно, эту переменную нужно будет как-то создать.Возможно, селектор с классом сообщений об ошибках?
var hasError = $('div.error').length;
Не уверен, что плагин validate имеет метод обратного вызова, который может свести на нет все это.