2012-12-10 21 views
1

我試圖在Google Analytics中捕獲輸入到文本框中的數據。我目前使用的代碼如下,我試圖通過Javascript捕獲數據,但我似乎無法使其工作。我使用的CMS平臺是sitecore。使用Google Analytics跟蹤文本框條目

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SalesRepSearch.ascx.cs"  Inherits="USEndoscopy.Website.layouts.USEndoscopy.Sublayouts.SalesRepSearch" %> 
<%@ Import Namespace="USEndoscopy.Library.Search" %> 

<script type="text/javascript"> 
    var textbox = document.getElementById('txtZipCode'), 
    submitButton = document.getElementById('btnSalesRepSearch'); 

submitButton.onClick = function() { 
    _trackEvent('data-store', textbox.name, textbox.value, 0); 
    // 'data-store' can be replaced with whatever category of data you want, for sortability's sake 
    // the 0 can be replaced with any other numerical data you want - but it must be numerical 
} 
</script> 
<p></p> 
<p> 
    <asp:Panel DefaultButton="btnSalesRepSearch" runat="server"> 
    <asp:TextBox ID="txtZipCode" runat="server" Width="300px"></asp:TextBox> 
    <asp:Button ID="btnSalesRepSearch" runat="server" CssClass="buttonregular" Text="Search" OnClick="btnSalesRepSearch_Click" /> 
    <asp:RequiredFieldValidator ID="reqTxtZipCode" runat="server" ValidationGroup="ZipCode" ControlToValidate="txtZipCode" Display="Dynamic" ErrorMessage="Please enter a valid US Zip code" CssClass="error"></asp:RequiredFieldValidator> 
     <asp:RegularExpressionValidator ID="regExTxtZipCode" runat="server"  ValidationExpression="^\d {5}(-\d{4})?$" ValidationGroup="ZipCode" ControlToValidate="txtZipCode" Display="Dynamic"  ErrorMessage="Please enter a valid US Zip code" CssClass="error"></asp:RegularExpressionValidator> 
    </asp:Panel> 
</p> 

<p> 
    <asp:Repeater ID="salesRepContainer" runat="server"> 
     <ItemTemplate> 
      <%# ((SalesRep)Container.DataItem).RepName %><br /> 
      <%# ((SalesRep)Container.DataItem).Phone %><br /> 
      <a href="mailto:<%# ((SalesRep)Container.DataItem).Email %>"><%# ((SalesRep) Container.DataItem).Email %></a><br /> 
     </ItemTemplate> 
    </asp:Repeater> 
</p> 
<p> 
    <sc:Text Field="InternationalMessage" runat="server" /> 
</p> 

回答

1

您是否檢查了呈現的HTML的源代碼?由於嵌套在面板中,ASP.Net WebControl ID是否完全不同?

也許你應該添加一個CSS類這些和使用document.getElementsByClassName

如果你正在使用jQuery的話,由於ASP.NET已經改變了你的文本框的ID值,你可以使用attributeEndsWith選擇

$('input[id$="txtZipCode"]'); 
$('input[id$="btnSalesRepSearch"]') 
1

這是在渲染它們時。

如果您運行.net V4或更高版本,然後將ClientIDMode="Static"添加到您的文本框和 按鈕。這告訴.net不要更改您的控件的ID。

<asp:TextBox ID="txtZipCode" runat="server" ClientIDMode="Static" Width="300px"></asp:TextBox> 
    <asp:Button ID="btnSalesRepSearch" runat="server" ClientIDMode="Static" CssClass="buttonregular" Text="Search" OnClick="btnSalesRepSearch_Click" /> 

如果你運行不到.NET 4的改變您的Javascript功能來:(.ClientID獲取.NET給控制,當它呈現它ID)

var textbox = document.getElementById('<%= txtZipCode.ClientID %>'), 
    submitButton = document.getElementById('<%= btnSalesRepSearch.ClientID %>'); 

UPDATE

您的javascript功能試圖將click函數分配給您的按鈕,然後您的按鈕在DOM上實際可用。

所以請嘗試以下操作:

JavaScript函數

function btnSearchClick(){ 
    var textbox = document.getElementById('txtZipCode'); 


    // Change your google code to this: 

    _gaq.push(['_trackEvent', textbox.name, textbox.value, 0]); 

    return true; 
} 

並在您的按鈕添加屬性

onClientClick="return btnSearchClick()" 
+0

您好,我繼續嘗試這種添加客戶端模式,靜態,與之前使用的JavaScript相同,我仍然無法在Google Analytics中獲得回報。 – vpd05141989

+0

在Javascript中使用Firebug查看此問題時,出現提示SubmitButton爲空的錯誤 – vpd05141989

+0

已添加更新。 – Darren

相關問題