2012-02-26 2 views
2

У меня есть страница с несколькими формами на ней. Каждая форма имеет свою собственную кнопку «Сохранить», которая проверяет и отображает сообщения об ошибках, используя .ajax() для публикации (не обычный метод почты). У меня также есть кнопка «Далее» за пределами форм, которая улавливается обработчиком jQuery click(). Эта функция проходит через каждую форму и вызывает $ (formname) .submit() для каждого.Получение возвращаемого значения из submit() через jquery

В конечном счете, мне нужно знать, прошли ли отдельные формы проверки, чтобы определить, должно ли произойти перенаправление. Я добавил, return false; в инструкции else проверки проверки в функции отправки, но я не вижу, как ее получить.

Наличие alert($(this).submit()); просто возвращает объект не возвращаемое значение. Без повторного кодирования всего почтового кода $ .ajax для каждой формы, есть ли в любом случае, я могу узнать, не удалось ли отправить сообщение?

//next button click 
$('#savenext').click(function() { 
    var finalsuccess; 
    $('.record_form').each(function (index) { 
     alert($(this).submit()); //I want this to be true or false 
    }); 
//forms each have their own submit handler 
$(formname).submit(function (e) { 
    e.preventDefault(); 
    var form = $(this); 

    if($(form).valid()) { //validate the form, return false if it is not valid. 
    //Post the form to the action if it passes 
     $.ajax({ 
      url: form.attr('action'), 
      type: "POST", 
      dataType: "text json", 
      data: form.serialize(), 
      success: function (response) { 
       //does some success messages here 
      }, 
     }); 
    } 
    else { 
     return false; 
     } 
}); 

Благодаря

+0

Почему бы вам не использовать плагин 'jquery Validation'? : -/ – uday

+0

Привет @Dave. Валидация все работает плавно, поэтому мне не нужно ничего менять. Мне просто нужно выяснить лучший способ получить ответ от формы .submit(). Есть ли что-то в этом плагине, что позволяет это? – Danni

ответ

3

В случае, если кто должен знать, я не нашел способ получить представить, чтобы вернуть значение успеха. В конце я изменил пост ajax на асинхронный: false, поместил это в функцию, которая вернула логическое значение либо событием успеха, либо событием ajax. Не так быстро из-за последовательности вызовов сервера, но я добавлю диалог загрузки, чтобы помочь с этим.

Смежные вопросы