即使存在验证错误,也会触发Google Analytics事件

时间:2018-03-06 22:14:36

标签: javascript jquery wordpress forms google-analytics

所有!

我已经建立了一个有联系表格的WordPress网站。我添加了一个javascript代码来跟踪表单提交事件。

问题是,即使存在验证错误且未提交表单,Google Analytics事件仍会触发。验证和提交由表单插件完成(它是连接到MS Dynamics CRM的表单)。

jQuery('div#main_form form').submit(function(e){
    e.preventDefault();
    ga('send', 'event', 'form', 'submit');
    var form = this;
    setTimeout(function(){ form.submit()}, 150);
  });

此外,当您点击提交按钮时,此代码会导致页面重新加载(即使存在验证错误)。

除非提交表单,否则请您帮我解释一下这个代码,以便事件不会被激活?我对JavaScript / jQuery的了解非常有限,请非常具体。

非常感谢!

2 个答案:

答案 0 :(得分:0)

这绝对是特定于插件的行为。肯定所有的验证都发生在访问者“提交”表单之后,因此收听“提交”事件对您没有帮助。 处理此问题的两种常用方法是:1)在发送GA事件之前执行与插件相同的验证2)可能有一些插件由ajaxsuccesswpcf7:mailsent事件提供,因此您可以添加听取那些事件。 但这些肯定超出了“JavaScript的有限知识”,因此我建议您寻找真正的开发人员的帮助

答案 1 :(得分:0)

以下代码修复了此问题:

jQuery('div#main_form form').submit(function(e){
    e.preventDefault();
    if(!jQuery('div#main_form form').valid()) return;
    ga('send', 'event', 'form', 'submit');
    var form = this;
    setTimeout(function(){ form.submit()}, 150);
  });