2014-02-13 140 views
0

我正嘗試使用標籤管理器基於表單提交在Google Analytics中創建一個事件。閱讀HTML元素

我最初試圖設置一個表單提交監聽器,但由於有JS驗證發生,並且通過JS提交表單,所以我嘗試了單擊監聽器。 (基本上試圖解決這個問題,而不是讓開發團隊參與到現在,我被告知這就是爲什麼標籤沒有被觸發,b/c表單提交事件是由JS執行的,最終我將不得不不希望在驗證發生之前跟蹤事件)。

所以我有一個點擊偵聽器在我的表單提交按鈕,它觸發事件就好了。但是,我正嘗試使用自定義JS宏來讀取此窗體中兩個表單字段框的選定值。

但是爲了測試目的,在嘗試讀取這些特定值之前,我只是試圖從窗體讀取任何數據。這是我射擊的宏。我已將{{firstName}}和{{lastName}}定義爲宏。它們是HTML輸入字段,具有唯一的ID。它們是宏定義爲DOM元素,它們各自的ID是:名字和姓氏。

function() { 
    var firstName = {{firstName}}.value; 
    var lastName = {{lastName}}.value; 

    var myForm = {{Ajax Contact Form}}; 

    console.log({{Ajax Contact Form}}); 
    console.log("Element Classes: " + myclass); 
    console.log({{firstName}}); 
    console.log({{lastName}}); 

    return firstName + '-' + lastName; 
} 

但它沒有捕獲任何數據。直到表單提交後3秒,我才清除表單字段,並且此數據已寫入。我附上了打印到控制檯的屏幕截圖。

同樣,我沒有在這裏使用表單提交監聽器,我使用的是單擊事件監聽器,而我只是試圖在單擊按鈕時從某些表單元素讀取一些值。

鏈接圖像 http://i.imgur.com/ktE3Kge.png

UPDATE

我開始想我需要一個自定義的HTML標籤。因此,當我的點擊規則被觸發時,它會找到我需要的表單值,創建一個虛擬URL並通過這個新的自定義HTML標記將其推送到dataLayer。那又怎麼樣?創建另一個跟蹤類型爲「事件」或其他內容的Google Analytics代碼?還是我在這裏偏離路線?

回答

0

我有使用DOM元素宏的問題。

使用JS來獲取表單值嘗試:

function() { 
    var firstName = document.getElementById('first-name').value; 
    var lastName = document.getElementById('last-name').value; 

    var myForm = {{Ajax Contact Form}}; 

    console.log({{Ajax Contact Form}}); 
    console.log("Element Classes: " + myclass); 
    console.log(firstName); 
    console.log(lastName); 

    return firstName + '-' + lastName; 
} 

讓我知道做什麼。