2012-03-27 21 views
1

応答しないスクリプトエラーが発生し続ける(Firefoxでは、Chromeではページがフリーズする)。jQuery form.submit()応答しないスクリプトエラー

私はこれをWordpressで使用していますが、目標はフォームの送信時にAJAX経由でWordpressにデータを送信し、フォームを強制的に送信することです。フォーム提出の統計を追跡したいと考えているとします。トラッキングは実際には問題なく動作していますが、フォームを送信している時点までページがフリーズし、jQueryエラーが発生します。

はここで(基本的に)私のコードです:

$('.wrapper form').submit(function(e) { 
e.preventDefault(); 
var self = this; 
var data = "x"; 
    var ajax_url = "correctUrl"; 
var submission_data = "action=ajax_url" + "&data=" + data; 

$.ajax({ 
    type: "POST", 
    url: ajax_url, 
    data: submission_data, 
    success: function(msg) { 
     if (data == 'y') { 
      if (msg && msg != 'no_redirect') { 
       window.location.href = msg; 
      } 
     } else { 
      self.submit(); 
      if (data == 'x') { 
       if (msg != 0 && msg != 'no_redirect') { 
        window.location.href = msg; 
       } 
      } 
     } 
    }, 
}); 
} 
+0

何)(self.submit 'の下にコードを追加する点、それは、AJAXを介して手動ではなく、フォームを送信する場合'? – Joseph

+0

私はフォームを提出したい、しかし、私はe.preventDefault()で起きていることを止めているので、最初に投稿を追跡することができます – graemeboy

+2

それはちょうどループを保つつもりですか? if(data == 'y')とデータがxに設定されている場合は、再度送信されますか? – mikevoermans

答えて

0

最初のステップは、ajax_urlを設定する肝炎 - zourのURLでcorrectUrlを交換してください。
第1 var submission_data = "action="+ ajax_url + "&data=" + data;

+0

ええ私はちょうどプレースホルダーとしてそれを入れます。私は正しいURLを持っています。 – graemeboy

+0

だから、私は特にvar self = thisを先に設定し、それを使ってサブミットしています。 – graemeboy

+0

私はself = thisを設定してから、後で "self"を使用して、参照が失われたらもう "this"を使う必要はありません。 – graemeboy