2014-11-02 179 views
0

我正在嘗試編寫一個JavaScript代碼跟蹤表單提交,給訪問者帶來最少的不便。我試圖編程的流程就是這樣。谷歌通用分析表格提交

  1. 用戶點擊提交或按下回車提交表單(留下相關的評論)。
  2. 附加表單提交處理程序捕獲此事件並阻止表單提交。
  3. 腳本發送谷歌分析事件,在命中回調(我不想用超時方法),該處理器是 刪除,表單提交

然而,問題我面臨的是,該表單不是(重新)提交谷歌分析回調提交。處理程序被刪除,因爲第二次手動提交表單會導致正常行爲。

我的代碼是:

var formSubmitHandler = function(event){ 
    event.preventDefault(); 

    ga('send', 'event', 'Form Submit', 'Form Submit', 'Form Submit', 
     {'hitCallback': 
      function() { 
       jQuery(event.target).submit(); 
      } 
     }); 

    return false; 
} 

jQuery(document).ready(function($) { 

    if (typeof(ga)==='undefined') 
     return; 
    jQuery('form').one('submit',formSubmitHandler); 
}); 

在這個問題上的任何幫助,將不勝感激。

回答

1

你想要submit的形式,而不是再次觸發submit事件。

請更改:

jQuery(event.target).submit(); 

要:

event.target.submit(); 
+0

我明白了,不過,這將導致一個函數沒有定義的錯誤。顯然這是由於在表單中名爲submit的輸入按鈕的情況。無論有沒有名爲submit present的輸入按鈕,我都可以通過這種方式做到這一點? – 2014-11-02 10:27:31

+0

不是我所知道的。您可能想要重命名該輸入按鈕。 – PeterKA 2014-11-02 10:42:13