在验证之后但在提交之前运行跟踪代码
Run tracking code after validation but before submit
有形式。验证函数附加到提交事件,它返回true/false ($(form).submit(…))。
<form name="f" class="form">
<input type=text name=ff>
</form>
$(".form").submit(function() {
if ($("[name='ff']").val()==="") {
return false
}
return true;
})
我们想运行一些跟踪脚本,在验证返回true的情况下必须执行,但不改变原始验证功能(我们有可能从接口启用/禁用跟踪脚本)
var _this = this;
ga('send', 'pageview', 'la-la-la', {
'hitCallback': function() {
jQuery(_this).parents('form').first().submit();
}
})
return !window.ga;
我该怎么做呢?
到目前为止,我想取消绑定当前的提交/验证函数并绑定我的函数,并在其内部执行验证逻辑,然后运行我的跟踪代码。通过这种方式,我可以很容易地禁用/启用跟踪代码,而不会中断逻辑的原始行为。
然而,我有这样做的问题。请建议。我想这样做
var fn = $(.form).submit // get attached logic - and that's does not work
$(.form).unbind('submit') // unbind it from submit
$(.form).submit(function() { // attach my code and reuse old code inside
my code...
if (fn()===true) {
my code...
}
my code...
})
您应该使用以下代码
$(form).on("submit", function(f){
//your function here. lets say you add a counter that starts from 0 and your validation functon returns its count. then you would say
if (counter != 0){ f.preventDefault(); } //this would stop the form from submitting until a condition on your function is met
});
我已经使用hitCallback事件的解决方案
jQuery(".register-form").on("valid", function(f) {
var event = "/signup";
var _this = this;
ga('send', 'pageview', event, {
'hitCallback': function() {
_this.submit();
}
})
return !(ga.hasOwnProperty('loaded') && ga.loaded === true);
})
相关文章:
- 动态分配GA增强型电子商务跟踪器
- 如何使用phaser使html5游戏在移动设备浏览器上运行
- 使用压缩的JavaScript文件(不是运行时压缩)
- 跟踪在页面加载时应用内联样式的JavaScript
- Javascript运行php文件,然后下载文件
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- 我已经创建了一个jquery转盘,并使用if条件来运行和停止转盘
- Angularjs代码未在匿名函数中运行
- jquery设置为使用参数运行
- 如何根据时间运行不同的脚本
- Meteor方法在客户端返回null,在客户端运行的相同方法返回正确的值
- 流星在哪里放置全球跟踪器.自动运行
- 如何仅在响应性文档的特定字段发生更改时运行跟踪器计算
- 我如何采取一个缩小的javascript堆栈跟踪,并运行它对源映射,以获得适当的错误
- 在Chrome中从控制台运行代码时获取堆栈跟踪错误
- 在验证之后但在提交之前运行跟踪代码
- 延迟跟踪代码的运行是好的吗?
- 如何在页面完全完成加载后运行跟踪脚本
- 如何在Javascript中跟踪应用程序的最后运行日期
- 在Javascript循环中运行PHP,以任何方式跟踪迭代