Я хочу иметь возможность отправлять несколько форм на странице, когда пользователь покидает страницу. Есть это "ты хочешь спасти?" вопрос и мой код пока так:
function checkForChanges( ) {
if (window.formform1Changed == true) {
if (window.asked == false) {
window.asked=true;
doSave = confirm("Wanna save? Click OK")
}
if (window.doSaveForms || doSave) {
window.doSaveForms = true;
document.forms.form1.submit();
}
}
if (window.formform2Changed == true) {
if (window.asked == false) {
window.asked=true;
doSave = confirm("Wanna save? Click OK.")
}
if (window.doSaveForms || doSave) {
window.doSaveForms = true;
document.forms.form2.submit();
}
}
}
Это может показаться немного излишним, но оно генерируется автоматически нашим механизмом шаблонов и может быть расширено до нескольких форм.
Тег тела:
<body
onLoad="init();
window.formform1Changed=false;
window.asked=false;
window.doSaveForms=false;
window.formform2Changed=false;"
onbeforeunload="checkForChanges();">
И интересная часть одной из форм (другая выглядит одинаково:
<input value="xyz" id="la" onchange="window.formform1Changed=true;" />
<input name="save" onclick="window.formform2Changed=false; window.formform1Changed=false;" type="submit" value="save" />
Теперь к проблеме:
Если я изменю значения в обеих формах и уйду со страницы, появится вопрос из первой формы. Я нажимаю OK, форма сохраняется, но form1.submit()
вызывает новое событие onBeforeUnload, которое нарушает всю логику моей идеи.
Теперь вопрос заключается в том, есть ли способ отправить все формы на страницу, когда запрашивается только один раз, когда пользователь уходит?
Любая помощь высоко ценится!
Спасибо.