Общее правило должно заключаться в том, что Javascript должен «дополнять» проверку на стороне сервера. Потому что Javascript можно отключить или даже испортить. (Greasemonkey?)
Я бы сказал, jQuery Validator, а затем проверка на стороне сервера. Таким образом, люди с включенным Javascript получают преимущество, заключающееся в том, что им не нужно обновляться для получения ошибок, но это плавно разлагается.
Используете ли вы AJAX для отправки полей, зависит от вас, но вы не должны использовать его для проверки, если это не такие вещи, как проверка, доступно ли имя / электронная почта. Лучше просто позволить JavaScript проверять его, пока пользователь печатает, потому что отсутствие необходимости отправлять запросы на сервер быстрее и эффективнее.
Использование только метода JavaScript позволило бы людям обходить проверку, если они отключили JavaScript. Поэтому всегда проверяйте данные снова, когда они передаются на сервер.