2017-07-13 15 views
0

接続が遅く「送信」ボタンを押し続けている場合、複数のフォームを送信しているユーザーに問題があります。ユーザーが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です:

jsfiddle

答えて

0

ユーザーが滞在することを決定したが、彼らは

を行う場合には、あなたが onbeforeunloadコールバックの内側のボタンを有効にすることができればあなたが聞くことができるというイベントがありません
関連する問題