Обработка формы после события через jquery для проверенной формы (ненавязчивая проверка) - PullRequest
0 голосов
/ 08 ноября 2011

Я должен обработать событие отправки формы и, возможно, заблокировать сообщение.Например:

$('#myForm').submit(function (){
  if (someCondition)
    return true //post;
  else
    return false //dont post
});

Эта часть работает, но теперь у меня есть плагин jquery.validate с jquery.validate.unobtrusive.

Я хочу, чтобы эта часть кода запускалась после проверка пройдена (и только если форма действительна).

Есть идеи?

Некоторые уточнения

Плагин проверки - это плагин jquery.validate от bassistance Я использую плагин Microsoft's ненавязчивый (который поставляется вместе с MVC3) поверх него.Я думаю, что в функции validationInfo в jquery.validate.unobtrusive.js работа должна быть выполнена ...

Ответы [ 3 ]

1 голос
/ 08 ноября 2011

Попробуйте это:

$("#myform").validate({
    submitHandler: function(form) {
        if (someCondition)
            return true; //post
        else
            return false; //dont post
        }
    }
});
0 голосов
/ 08 ноября 2011

Благодаря @Rory я добился того, чего хотел.Поскольку jquery.validator.unobtrusive обрабатывает вызов jquery.validate и не обеспечивает способ перехвата чего-либо (да, это плагин Microsoft ...), решение состоит в том, чтобы использовать параметр submitHandler, как предложил Рори, ночерез setDefault метод:

   if (typeof ($.validator) != 'undefined') {
      $.validator.setDefaults({
         submitHandler: function (form) {
            if (someCondition)
               return true; //post
            else
               return false; //dont post
         }

      });
   }
0 голосов
/ 08 ноября 2011

Я не уверен, правильно ли я понимаю ваш вопрос, но посмотрите на параметр submitHandler в плагине jQueryValidate:

Обратный вызов для обработки фактической отправки, когда форма действительна,Получает форму в качестве единственного аргумента.Заменяет отправку по умолчанию.

http://docs.jquery.com/Plugins/Validation/validate

...