ユーザーがページを離れるときに、ページ上で複数のフォームを送信する機能が必要です。この「あなたは救いたいですか?」があります。質問とこれまでの私のコードは次のようなものです:
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イベントがトリガーされ、アイデアのロジック全体が壊れます。
ここでの問題は、ユーザーが移動したときに1回だけ質問するときに、ページ上のすべてのフォームを送信する方法があるかどうかです。
どんな助けでも大歓迎です!
ありがとう。