2011-12-18 5 views
2

Мне явно не хватает чего-то с jQuery, отправкой формы и AJAX. Исходный код PHP и кодировка JSON работают нормально. Но когда форма отправлена, она похожа на , данные отправляются дважды, а значения, входящие в форму, - null.jQuery form submission AJAX issue

Вот мой сценарий:

$(document).ready(function() { 
    var validated = $("#loginForm").validate({ 
     errorLabelContainer: "#errorMessage", 
     wrapper: "li", 
     rules: { 
      username: "required", 
      password: "required" 
     }, 
     messages: { 
      username: "Please enter your username.", 
      password: "Please enter your password." 
     }, 
     submitHandler: function (form) { 
      $.ajax({ 
       type: 'POST', 
       url: $(form).attr('action'), 
       data: $(form).serialize(), 
       dataType: 'json', 
       success: function (res) { 
        if (res.err == true) { 
         $("#errorMessage").text(res.msg); 
        } else { 
         window.location = res.url; 
        } 
       }, 
       error: function() { 
        $("#errorMessage").text("There was an error processing form."); 
       }, 
      }); 
     } 
    }); 
}); 
+0

Вы используете firebug? .. «это похоже на то, что данные ...» предполагает, что вы не контролируете свои XHR-вызовы эффективно. –

+1

ум делает [jsfiddle] (http://jsfiddle.net/)? – Tomas

+0

У вас есть ошибки на странице? Работает ли плагин validate? Кроме того, после опции «ошибка» у вас есть синтаксическая ошибка (дополнительная запятая). –

ответ

0

Я сделал скрипку этого и кажется, что код должен работать. В firebug я увидел, что запрос отправлен правильно со всей датой формы. Я заметил, что если определено свойство dataType, ответный тип данных должен быть правильным.

http://jsfiddle.net/7vtAw/