我已将该函数放入表单验证部分,因此只有当表单有效时,才会发送信标。我相信我错过了一些东西。请参阅下面的代码。
function checkForm() {
var error = "";
if($("#first_name").val()=="") { error+="- Enter your first name.\n";};
if(error=="") {
_gaq.push(['_trackEvent','Form','Submit','Newsletter']);
return true;
} else {
alert("Please correct these form errors before you submit the form:\n\n"+error)
return false;
}
}
编辑:感谢大家的帮助!测试了这一个,100毫秒似乎不够。
现在我想以更聪明的方式做这件事。一旦所有必填字段都包含文本,提交它是有意义的,但它应该足够聪明,可以多次提交并仅在数据有效时提交!
答案 0 :(得分:1)
你确定它不是火吗?可能在分析数据更新方面存在一些延迟。如果您在localhost上开发应用程序,则应将_setDomainName属性设置为“none”
_gaq.push(['_setAccount', 'Your-account-id']);
_gaq.push(['_setDomainName', 'none']);
答案 1 :(得分:1)
尝试使用setTimeout()或setInterval()提供延迟(可能约为100毫秒或更短)并让GA数据提交。为我工作。
function gaSubmit(param){
_gaq.push(param);
}
function checkForm() {
var error = "";
if($("#first_name").val()=="") { error+="- Enter your first name.\n";};
if(error=="") {
setTimeout(gaSubmit(['_trackEvent','Form','Submit','Newsletter']),100);
return true;
} else {
alert("Please correct these form errors before you submit the form:\n\n"+error)
return false;
}
}