2017-04-05 85 views
1

我正在寻找一种简单的方法来准确跟踪表单提交。这是我目前使用的代码:GTM - 表格提交的火标签(仅在需要填写字段时填写)

$(function() { 
     $('#form').submit(function() { 
     dataLayer.push({ 
      'event': 'GAEvent', 
      'eventCat': 'Form Submit - Create', 
      'eventAction': 'Form Submit Document', 
      'eventLabel': checked, 
      'eventValue': count, 
      'gaNonInt': false 
     }); 
     }); 
    }); 

问题是即使表单未提交,标签也会触发。例如,如果某人未能填写必填字段并点击提交按钮,GTM就会将提交点击提交。如果填写所有必填字段,是否有一种简单的方法可以仅触发代码?

在此先感谢。

+0

您可以发布您的表单HTML和任何JavaScript验证。 –

+0

@JoshCronin我可以,但是,形式是巨大的。我不确定JS验证存储在哪里。这些表单被集成到Drupal 7核心中。我注意到,所有必填字段在其类的命名中都使用“必需”字段?可以以某种方式使用它吗? – Kellen

+0

只看所需的属性可能不会完全解决问题 - 可能存在其他验证规则,即使该字段包含某些文本,也会阻止提交表单。 –

回答

3

您可能想尝试使用GTM的“原生”提交触发器而不是jQuery代码,并确保选中“check validation”复选框。

表单中的JavaScript验证会抑制提交按钮的默认行为,并且只有在验证通过后才会调用提交事件。通过设置“check validation”选项,GTM表单提交触发器应该能够注意到默认行为是被阻止的,并且只有当验证器函数调用提交事件时才会触发标签(我说“应该”,因为,我认为表单提交触发器并不总是100%可靠,但可能值得一试)。

enter image description here