Я отслеживаю элементы ввода формы для изменения (чтобы предупредить пользователя о несохраненных изменениях формы при выходе из страницы).
Насколько я понимаю, событие изменения jQuery запускается только после того, как определенные элементы ввода теряют фокус(например, текстовое поле).
Это проблематично, поскольку пользователь может отредактировать одно текстовое поле, затем попытаться выйти, и событие изменения текстового поля не сработает.
Вот как далеко я продвинулся:
var formChanges = {
override: false,
changed: false,
checkChanges: function() {
if(!formChanges.override) {
if(formChanges.changed) {
return "There are currently unsaved changes.";
}
}
},
init: $(document).ready(function() {
$('#checkThis').submit(function() { //'checkThis' is the form ID
formChanges.override = true;
});
$(':input').change(function() {
formChanges.changed = true;
});
})
}
window.onbeforeunload = formChanges.checkChanges;
Есть идеи, как преодолеть эту проблему?