弹出窗口关闭时提交表单

时间:2013-09-12 21:48:02

标签: javascript forms

我编写了一个显示测验列表的代码,当选择一个测验时,会弹出一个新窗口并运行在线测验。问题是,当窗口关闭时,计时器应该到期,即在窗口关闭之前应该提交表格。生成新窗口的代码如下:

 var radios = document.getElementsByName("quizname");
var flag=0;
for (var i = 0; i < radios.length; i++) 
{       
    if (radios[i].checked) 
    {
        flag=1;
        var x=radios[i].value;
        var z=radios[i].value;
        break;
    }
}
if(flag==0)
{
    alert("Choose an option!!");
    exit;
}
var x="http://127.0.0.1/example/timedrunquiz.php?y="+x;
var win=window.open(x,z,"fullscreen=yes,scrollbars=yes");
win.focus();

我使用win.onbeforeunload,但我无法完成任务。在结束前我应该怎么做才能提交表格?提前谢谢!

2 个答案:

答案 0 :(得分:0)

不确定这是否是正确的方法。你应该在窗口上有一个提交按钮,听众可以在提交完成后调用win.close();

现在,为了确保用户实际提交任何内容,您应该使用win.onbeforeunload来确认用户是否确实要关闭页面,如下所示:

win.onbeforeunload = function() {
    return confirm('Do you really want to exit? All your progress would be lost');
}

答案 1 :(得分:0)

如果您想在结束前提交表单,可以使用ajax提交表单

 function callback()
    {
        $.ajax({
                   type: "POST",
                   url: "yourUrl",
                   data: 'YourData',


         });
        return "You are about to leave this page"; 
    }

    win.onbeforeunload = callBack;