2011-12-18 14 views
2

明らかに、jQuery、フォーム提出、AJAXで何か不足しています。 PHPバックエンドとJSONエンコーディングはうまく動作します。しかし、フォームが提出されると、 のようにデータが2回提出され、フォームに入力される値はnullとなります。ここでjQueryフォーム提出AJAXの問題

は私のスクリプトです:

$(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プラグインは動作していますか?また、 'error'オプションの後に構文エラー(余分なカンマ)があります。 –

答えて

0

私はこれのバイオリンを作り、コードが動作するはずと思われます。火かき棒で私は要求がすべてのフォーム日付で正しいことを見たことがわかりました。私は、dataTypeプロパティが定義されている場合、応答データ型が正しいことに気付きました。

http://jsfiddle.net/7vtAw/