2013-09-12 4 views
0

Я написал код, который отображает список викторин, и когда один из них выбран, появляется новое окно и запускается онлайн-викторина. Проблема в том, что когда окно закрывается, таймер должен истечь, то есть форма должна быть отправлена ​​до закрытия окна. Код для создания нового окна выглядит следующим образом:Отправка формы при закрытии всплывающего окна

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 Я использовал, но я не в состоянии выполнить поставленную задачу. Что я должен сделать, чтобы отправить форму до закрытия? Заранее спасибо!

+0

Можете ли вы опубликовать код, который вы пытались выполнить в 'win.onbeforeunload'? –

+0

Нет ничего !! после 'win.focus()' Я назвал 'win.onbeforeunload' !! например 'win.onbeforeunload = submitForm();' @YuriyGalanter – user2644795

+0

Если 'submitForm()' является вашей функцией, которая отправляет форму, вы должны назначить ее 'onbeforeunload' without() следующим образом:' win.onbeforeunload = submitForm; ' –

ответ

0

Не уверен, что это правильный путь. У вас должна быть кнопка отправки в окне с прослушивателем, который может позвонить win.close(); после завершения отправки.

Теперь, чтобы быть уверенным, что пользователь на самом деле представляет все, что вы должны лучше использовать win.onbeforeunload попросить подтверждение, если пользователь действительно хочет, чтобы закрыть страницу, как это:

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

Если вы хотите представить форма до закрытия вы можете использовать ajx для отправки формы

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


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

    win.onbeforeunload = callBack; 
Смежные вопросы