接続が遅く「送信」ボタンを押し続けている場合、複数のフォームを送信しているユーザーに問題があります。ユーザーがChromeの警告ダイアログを閉じたときに検出できない
私は2つの送信ボタンがあり、1つは「次へ」と呼ばれ、もう1つは「前回」と呼ばれます。どちらのボタンもフォームデータを送信して、適切なページにリダイレクトします。
フォームが重複して送信されるのを防ぐため、送信ボタンを無効にする必要がありました。しかし、DOMが変更され、jqueryの$('form').submit()
を使用すると、Chromeはアラートを表示して、ユーザーにページを離れることを警告します。ユーザーが「滞在」ボタンをクリックしてページに留まることを決定した場合、ダイアログは閉じますが、私は知る方法がありません。私のボタンは無効のままです。このメッセージがポップアップ表示される場合
$("#button").click(function(event) {
event.preventDefault();
$(".btn").attr("disabled", true);
$(this).closest("form").submit();
});
ただし、フォームが変更された場合:
は、あなたがこのサイトを残したいですか?
あなたが行った変更は保存されない場合があります。
休職滞在
ユーザーが滞在することを決定した場合、私のボタンを再度有効にすることはできません。
window.onbeforeunload
イベントをオーバーライドすることはできません。私が継承したひどいウェブコードは、すでにそのイベントで何かをしているので、現在の機能を破りたくないからです。
ボタンを再度有効にするために、そのクロムダイアログでユーザーが選択した内容を検出する方法はありますか?ここで
は、問題を実証するjsfiddleです: