我们有一个用户需要填写的长表单,它有10个多项选择题。我们面临的问题是用户填写4-5个问题,然后再停止填写。
我们希望将此部分填写的表单信息发送到服务器。
实现此目的的一种方法是在每个步骤发送数据,即用户回答任何问题。但这会导致API命中太多,并减慢客户端的填充过程。
有没有其他方法可以实现这一点,即使用js unload事件,或者我们是否可以在客户端检测用户更改标签/关闭浏览器/或使用任何其他方法退出我们的页面?
答案 0 :(得分:1)
我一直这样做表格,以捕捉潜在的表格放弃。因此,每当输入字段出现模糊时,它都会检查频率并将表单数据作为帖子发送到处理程序,您可以在该处理程序中接收数据并在/abandoned/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();
});