如何将半满的表单数据发送到服务器?

时间:2017-08-02 19:57:17

标签: javascript jquery

我们有一个用户需要填写的长表单,它有10个多项选择题。我们面临的问题是用户填写4-5个问题,然后再停止填写。

我们希望将此部分填写的表单信息发送到服务器。

实现此目的的一种方法是在每个步骤发送数据,即用户回答任何问题。但这会导致API命中太多,并减慢客户端的填充过程。

有没有其他方法可以实现这一点,即使用js unload事件,或者我们是否可以在客户端检测用户更改标签/关闭浏览器/或使用任何其他方法退出我们的页面?

1 个答案:

答案 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();
    });