2016-03-22 3 views
2

Проблема заключается в том, что я использую window.onbeforeunload.While, я нажимаю кнопку o submit, тогда всплывающее окно отображается. Но мне нужно только, когда была установлена ​​backbutton или refresh. Для этого я думал, что мы получим событие правильно. поэтому всякий раз, когда выгружается вызов, я просто хочу проверить, является ли это событие onsubmit.if, это не значит, что мы не предоставляем всплывающее окно. поэтому для этого мне нужно знать, как регистрируется событие отправки.Как извлечь событие onSubmit с помощью jQuery?

Может ли кто-нибудь решить эту проблему?

window.onbeforeunload = function(e) { 
    if ($('.formFields').find('tr.item').length || $('.formFields').find('tr.section').length) { 
     var dis = discardWarning(); 
     return dis; 
    } else { 
     return; 
    } 

}; 

var discardWarning = function() { 
    return "Your current work will be discarded."; 
} 
+0

Возможный дубликат [Trigger Jquery события после onsubmit] (http://stackoverflow.com/questions/4550541/trigger-jquery-event-after-an-onsubmit) –

+0

Вы хотите это предупреждение для пользователей когда пользователь вносит некоторые изменения и оставляет эти страницы, не сохраняя их правильно? – itzmukeshy7

+0

Да, точно. @ Itzmukeshy7 – Bhanu

ответ

1

Вы можете установить переменную флага при отправке формы и ответе ответа.

/* default */ 
window.leavingAfterSubmission = false; 

$('#your-form').on('submit', function(e) { 
    window.leavingAfterSubmission = true; 
}); 

Затем вы можете проверить этот флаг на обработчик onbeforeunload событий.

window.onbeforeunload = function() { 
    if (!window.leavingAfterSubmission) { 
    // flag is false, meaning the user is leaving by refresh or back button 
    return discardWarning(); 
    } 

    // flag is true, meaning the user is leaving by form submission 
    // empty return to prevent the dialog 
    return; 
}; 
+0

Могу ли я иметь пример .. Я имею в виду, просто попробуйте написать его в моем коде выше, пожалуйста .. Я не могу понять – Bhanu

+1

Я добавил код onbeforeunload, также, проверьте, работает ли он так, пожалуйста , –

+0

Большое спасибо .. Это сработало .. – Bhanu

Смежные вопросы