#javascript #jquery #html
#javascript #jquery #HTML
Вопрос:
Приведенный ниже код вызывает всплывающее окно «Нажмите Сохранить!», если были внесены изменения в поля ввода, и кто-то пытается перейти со страницы, не нажимая кнопку отправки для сохранения.
Может кто-нибудь сказать мне, как внести небольшое изменение в это, которое вызовет всплывающее окно «Нажмите Сохранить!» при ЛЮБОЙ попытке перехода со страницы, даже если ни в одно из полей ввода не было внесено изменений (но, конечно, по-прежнему не всплывает, если они нажимают кнопку отправки)?
var warnMessage = "Click Save!";
$(document).ready(function() {
$('input:not(:button,:submit),textarea,select,text').change(function () {
window.onbeforeunload = function () {
if (warnMessage != null) return warnMessage; }});
$('input:submit').click(function(e) {
warnMessage = null;
});
});
Комментарии:
1. Просто удалите все, кроме
onbeforeunload
обработчика?2. Это работает, но теперь это делается для каждой отдельной страницы с вводом или без, поэтому мне придется придумать что-нибудь, чтобы изолировать ее только для редактирования страницы. Спасибо
Ответ №1:
var warnMessage = false;
window.onbeforeunload = function (event) {
if (!warnMessage) {
return;
}
else {
return "You have unsaved changes on this page. If you wish to save these changes, stay on the current page.";
}
}
$(document).ready(function () {
$('input:not(:button,:submit),textarea,select,text').change(function (event) {
warnMessage = true;
});
$('input:submit').click(function () {
warnMessage = false;
});
});