В приведенном ниже коде я предупреждаю пользователя "оставить страницу", если пользователь не нажмет кнопку отправки. Но если пользователь не заполняет формы, я могу остановить предупреждение "оставить страницу"?
Не заполняется окно формы в + кнопка отправки = нет предупреждения
Любое поле формы заполнено или пользователь хочет покинуть страницу или вернуться = показать предупреждение "оставить страницу"
var warning = true;
window.onbeforeunload = function() {
if (warning) { return "You have made changes on this page that you have not yet confirmed. If you navigate away from this page you will lose your unsaved changes";
}
}
$('form').submit(function() {
window.onbeforeunload = null;
});
Если вам необходимо основывать поведение на содержимом элементов формы, вам нужно либо проверить их содержимое, либо прослушать изменения в их содержимом, чтобы настроить ваше поведение при разгрузке.
Проверка содержимого формы, вероятно, самая быстрая, так как вам нужно будет сделать это только в том случае, если пользователь на самом деле пытается уйти, вам не нужно будет управлять кучей слушателей во всех элементах формы (и у вас есть стрельба из событий вы уже не заботитесь о том, как пользователь начал изменять).
.submit()
условие для каждого элемента формы, чтобы проверить, есть ли значение.