0

我已将该功能放入表单验证部分,这样只有当表单有效时,才会发送信标。我确定我错过了一些东西。请参阅下面的代码。

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;
    }
}

编辑:感谢大家的帮助!测试了这个,100ms似乎不够用。

现在我正在考虑以更聪明的方式做到这一点。提交它是有意义的,一旦所有必填字段都包含文本,但它应该足够聪明,可以多次提交并且仅在数据有效时提交!

4

2 回答 2

1

你确定不是火?分析数据刷新可能存在一些延迟。如果您在 localhost 上开发应用程序,则应将 _setDomainName 属性设置为“无”

_gaq.push(['_setAccount', 'Your-account-id']);
_gaq.push(['_setDomainName', 'none']);

@see:来自本地主机的 GA 事件跟踪

于 2013-11-04T10:20:43.520 回答
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;
    }
}
于 2013-11-05T11:36:25.173 回答