У меня смешанная проверка на стороне клиента и на стороне сервера с использованием плагина проверки jQuery. Проверка происходит как для отправки, так и для некоторых полей при изменении. Форма отправляется через AJAX. Перед обновлением БД выполняется еще одна проверка приложения.
Если изменения данных не сохраняются в базе данных из-за сбоя проверки, я возвращаю результат через JSON методу JS, обрабатывающему отправку формы AJAX.
В идеале я бы поднял ошибку с пользовательским сообщением, передаваемым из бэкэнда в JS чем-то вроде
$ .validator.showErrors (объект);
как обсуждено здесь
К сожалению, метод validator.showErrors (...) не определен в этом контексте:
$(document).ready(function() {
$('.form').each(function() {
$(this).submit(function(e) {
e.preventDefault();
if ($.submitForm()) {
(...)
$.post(url, $.param(context), function(data) {
if (!data.success) {
$.validator.showErrors(...);
//$("#basicdetails").validate();
}
}, "json");
}
(...)
Вы также можете видеть, что я пробовал повторную проверку формы, которая также должна вызывать соответствующую ошибку (хотя это скорее хак, чем реальное решение).
Я хотел бы сохранить статическую проверку на стороне клиента и после отправки ajax, чтобы иметь возможность вызывать любые ошибки, которые могли произойти на сервере.
Спасибо за любую помощь, которую вы можете оказать.
Pawel