我需要设置一个自定义脚本来跟踪用户点击表单提交字段。这是我到目前为止所得到的。当用户向下浏览表单字段时,计数器变量(基数)总计沿用户已到达的路径的距离。我希望在用户离开页面时通过发送基本变量来关闭结果。我正在考虑在jQuery中使用.unload函数。但是出于某种原因,卸载并没有像我认为的那样应对。有任何想法吗?
var base = 0; //declares a variable of 0. This should refresh when a new user lands on the form page.
function checkPath(fieldNo, path) { //this function should check the current base value of the base variable vs the current fieldNo
if (fieldNo >= path) { //checks to see if base if lower than fieldNo
base = fieldNo; //if true, base is set to current fieldNo
return base;
} else {
return base; //if false, simply returns base.
}
};
$('#order_customer_fields_forename').focus(function () { //when the form box is selected should run checkPath then alert result.
checkPath(1, base);
});
$('#order_customer_fields_surname').focus(function () {
checkPath(2, base);
});
$('#order_customer_fields_postcode').focus(function () {
checkPath(3, base);
});
$('#order_customer_fields_address1').focus(function () {
checkPath(4, base);
});
$('#order_customer_fields_address2').focus(function () {
checkPath(5, base);
});
$(window).unload(function () {
alert(base);
});
答案 0 :(得分:0)
unload
事件对您所需的效果起火太晚。您应该尝试使用vanilla Javascript:
onbeforeunload
事件
window.onbeforeunload = function (e) {
// Your code here
};
或jQuery:
$(window).bind('beforeunload', function (e) {
// Your code here
});
无论哪种方式,您应该意识到这不是您想要实现的目标的理想解决方案。此事件在浏览器中实现不均匀。在实现中,Chrome似乎是最具限制性的,IE是最宽容的。
您可能想要采取的另一个方向是,只要用户填写字段,XHR就会将数据发送到服务器。