2012-03-27 39 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 2012-03-27 20:54:55

+0

我想要表單提交,但我停止與e.preventDefault()發生的事情,以便我可以首先跟蹤提交 – graemeboy 2012-03-27 20:56:35

+2

這只是要保持循環不是嗎?如果(data =='y')和數據被設置爲x,在這種情況下它會再次提交? – mikevoermans 2012-03-27 20:57:00

回答

0

第一步,你甲肝設置ajax_url - 用代爾鋁-Zour替換URL correctUrl
第二個var submission_data = "action="+ ajax_url + "&data=" + data;

+0

是的,我只是把它作爲佔位符。我確實有正確的網址。 – graemeboy 2012-03-27 20:59:12

+0

這就是爲什麼我特別設置var self = this之前,然後用它來提交。 – graemeboy 2012-03-27 21:13:45

+0

我設置了self = this,然後稍後使用「self」,這樣我就不必再使用「this」了,一旦引用丟失了。 – graemeboy 2012-03-27 21:18:38