Пользовательский Ajax-запрос с проверкой формы jQuery - PullRequest
0 голосов
/ 05 октября 2011

Я хочу проверить форму с помощью плагина проверки формы jQuery , но мне не удалось отправить пользовательский запрос Ajax с обработчиком проверки:

  $('#headForm').validate(
  {
    //submitHandler: submit,
    errorClass: "invalid",
    rules: {
      title: {maxlength: 50}
    },
    messages: {
      title: {maxlength: 'Max 50 chars'}
    }
  });

Мой оригинальный обработчик отправкиВыглядело это так:

  $('#headForm').submit(function(event) 
  {
    event.preventDefault();
    $.ajax(
      {
        type: "PUT",
        url: "/target",
        data: $('#headForm').serialize(),
        dataType: "json", 
        success: function() 
          { 
            alert("ok");
          }
      });
  });

Я пытался переместить его в обычную функцию и зарегистрировать как submitHandler в блоке проверки, но это не сработало.

  function submit() { // impossible to pass the event!
    $.ajax( ...
  }

Как я могу объединить проверку jQuery с пользовательским запросом Ajax?

Возможная ошибка проверки формы: Я удалил код проверки, чтобы увидеть, работает ли представление без него.И это не так, если я не удалил ссылку на библиотеку проверки формы jQuery!Похоже, что валидация разрушает ядро ​​jQuery.Я уже говорил, что люблю динамический набор текста ...; -)

1 Ответ

0 голосов
/ 05 октября 2011

Вы определили параметр в функции submit()?

(я предполагаю, что вы этого не сделали, и поэтому может быть, это не сработало)думаю, вам просто нужно указать параметр 'form', а затем вызвать serialize() для этого параметра следующим образом:

submitHandler: function(form) { 
  $.ajax({
    type: "PUT",
    url: "/target",
    data: form.serialize(),
    dataType: "json", 
    success: function() 
      { 
        alert('ok');
      }
    });
   }

См. документы: http://docs.jquery.com/Plugins/Validation/validate#options

...