所有!
我已经建立了一个有联系表格的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的了解非常有限,请非常具体。
非常感谢!
答案 0 :(得分:0)
这绝对是特定于插件的行为。肯定所有的验证都发生在访问者“提交”表单之后,因此收听“提交”事件对您没有帮助。
处理此问题的两种常用方法是:1)在发送GA事件之前执行与插件相同的验证2)可能有一些插件由ajaxsuccess
或wpcf7: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);
});