2016-04-04 8 views
2

フォームに多数の入力があり、入力フィールドを編集した後にのみアラートポップアップウィンドウを開きたいとします。どうすればそれを管理できますか?javascriptで戻るボタンが押された場合に警告メッセージを表示するにはどうすればいいですか?

編集ページを開くたびに、長さをチェックしています。ゼロより大きい場合、アラートを出しています。

しかし、今私は、任意のキーをストロークし、戻るボタンを押すときだけ警告を得る必要があります。それにはどんな解決策がありますか?

+2

try 'window.onbeforeunload = function(){return"あなたの作品は失われます。 }; ' –

+0

はキーストロークを忘れる。戻るボタンをクリックする前後のデータを確認してください。データが変更された場合は、上記のコメントに記載されているようにします。 –

+0

'onbeforeunload'はリロード時に起動し、ページを終了する他のインスタンスは –

答えて

1

ページは/さまざまな入力フィールドの現在の状態を追跡する変数を作成し、最初の荷重を文書、例えば

window.unsaved = false

ユーザーが入力フィールドのいずれかの任意のキーを押す(あなたはjqueryのを使用している場合のKeyDownイベントを使用することで、イベントリスナーを使用してこれを確認、または)、trueするunsavedを変更しました。 onbeforeunloadの範囲内で、保存されていないかどうかを確認してください。そうでない場合は警告を表示してください。

jQueryを使用している場合は、のようにすることができます。

$(document).ready(function(){ 
    // put this next variable in the global scope (window.) so you can 
    // access it from unload 

    window.unsaved == false; 

    $('input').keydown(function(){ 
    window.unsaved == true; 
    }) 
}) 

$(window).unload(function() { 
    if(window.unsaved == true){ 
    alert('You have unsaved work.'); 
    } 
}); 
関連する問題