我们有一个很长的表格,用户需要填写,它有10个多项选择题。我们面临着一个问题,用户正在填写4-5个问题,然后停止进一步填写。
我们希望将此部分填写的表单信息发送到服务器。
一种方法是在每个步骤中发送数据,即在用户回答任何问题时立即发送数据。但这会导致太多的API命中,并减慢客户端的填充过程。
有没有其他方法可以做到这一点,例如,使用js unload事件,或者我们可以在客户端检测到用户何时更改选项卡/关闭浏览器/或使用任何其他方法退出我们的页面?
发布于 2017-08-02 20:04:58
我一直在这样做,以便表单捕获潜在的表单丢弃。因此,每当输入字段出现模糊时,它都会检查频率,并将表单数据作为post发送到一个处理程序,您可以在该处理程序中接收数据并在/ form /handler.php文件中执行所需的操作。
Javascript (确保先初始化JQuery ):
function sendAbandoned() {
var now = new Date();
now = Math.floor(now / 1000);
if ((now - lastUpdate) < 10) {
// make sure doesn't send too many "updates"
return false;
}
lastUpdate = now;
var formArr=$("form[name='formName']").serializeArray();
$.post('/path/to/abandoned/handler.php',
formArr);
}
$("form[name='formName'] input").blur(function () {
sendAbandoned();
});
https://stackoverflow.com/questions/45469884
复制