2016-01-12 3 views
-1

Я хочу получить подтверждение от пользователя, чтобы сохранить форму перед закрытием страницы с помощью функции подтверждения() javascript. Если пользователь нажал Ok кнопка, запустите действие сохранения формы и нажмите Отмена кнопка, затем закрыть страницу.Подтвердите, что пользователь отправил форму перед закрытием страницы через jquery

для этого я пишу это:

window.onbeforeunload = function() { 
    if (confirm('Are you want to save Form ?')){ 
     //saveActions 
    } 
    return 'You have unsaved changes!'; 
} 

Но onbeforeunload события для объекта окна не работает функцию подтверждения() и этого нужно просто его собственное диалоговое окно подтверждения со строкой, которая находится рядом с возвращения инструкции.

Как я могу это сделать?

+1

вы не можете использовать 'confirm' или' 'alert' внутри onbeforeunload'. Многие браузеры даже не будут использовать возвращаемую строку в качестве отображения. Эта функция так злоупотребляла много лет назад, что в ней можно сделать очень мало. – charlietfl

+1

Возможный дубликат [confirm() on window.onbeforeunload] (http://stackoverflow.com/questions/12132060/confirm-on-window-onbeforeunload) –

+1

Пожалуйста, не используйте всплывающие окна, когда пользователь пытается закрыть вкладку! Это один из худших доступных методов. Это очень раздражает, когда вы пытаетесь просто закрыть вкладку, но всплывающее окно пытается помешать вам. Вместо этого, как об автоматическом сохранении через AJAX или в локальной памяти, или об обнаружении намерения выхода, проверяя положение указателя (большинство пользователей нажимают на x в закладке или окне кадра). Также имейте в виду, что большинство браузеров помнят, что вы ввели в формы. –

ответ

1

Это естественное поведение.

window.onbeforeunload ограничен в эксплуатации, чтобы предотвратить его эксплуатацию.

Отказ или опрос пользователя на мнение после окончательного закрытия - это плохая практика.

варианты Try как периодически сохранять ваши данные, имеющие внутреннюю кнопку «Закрыть» и т.д.