有形式。验证函数附加到提交事件,它返回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...
})
答案 0 :(得分:0)
您应使用以下代码
$(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
});
答案 1 :(得分:0)
我使用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);
})