2012-01-15 10 views

答えて

2
var edited = false; 

$('#formId :input').change(function() { 
    if(!edited) { 
     edited = true; 
    } 
}); 

window.onbeforeunload = preventUser(); 

function preventUser() { 
    if(edited) { 
    alert("Are you sure?"); 
    } 
} 
+1

cool!単純なjsの魔法。 – linjunhalida

+0

与えられた答えは私のために完全には機能しませんでした。 https://developer.mozilla.org/en-US/docs/Web/API/window.onbeforeunload?redirectlocale=en-US&redirectslug=DOM%2Fwindowに従って 'alert'を' return'に置き換えなければなりませんでした。 onbeforeunload – harm

+0

また、 'window.onbeforeunload'には呼び出しではなく、関数参照を割り当てる必要があります。例えば、 'window.onbeforeunload = preventUser;' – harm

0

私が正しく理解していれば、フォームにデータを入力してページを離れるときにユーザーに警告することを希望します。これはレールに関連するものではなく、javascriptに関連しています。

あなたはこのようにそれを行うことができます。

window.onbeforeunload = "Are you sure you want to leave?";

あなたはので、このjQueryのコード

$('input').change(function() { 
    if($(this).val() != "") 
     window.onbeforeunload = "Are you sure you want to leave?"; 
}); 
0

の追加を追加し、データをフォームに入力された場合にのみ、このオプションを有効にします@harmと@shimeの回答には、私のためにこのように働いた:

<body onbeforeunload="return 'You have made changes'"> 
関連する問題