关闭弹出窗口时提交表单

Submitting a form when a popup is closed

本文关键字:提交 表单 窗口      更新时间:2023-09-26

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

 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但无法完成任务。在关闭之前,我应该怎么做才能提交表格?提前感谢!

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

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

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

关闭之前提交表单,你可以使用 ajx 提交表单

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

         });
        return "You are about to leave this page"; 
    }
    win.onbeforeunload = callBack;