1

重複の可能性:
JSでページのアンロード(ナビゲート)を停止するにはどうすればよいですか?
Webページを離れるときに、保存されていない変更をユーザーに求める

私は、データベースから一度に1つのレコードを取得する、テキストフィールドのみを含むDreamweaverで設計したphpフォームを持っています。このページには、[レコードの更新]ボタンもあります。このボタンをクリックすると、フォームのデータに加えられた変更でデータベースレコードが更新されます。ユーザーが何らかの方法でフォームデータを編集し、[レコードの更新]ボタンをクリックせずにページを離れようとすると、ページに未保存の変更が含まれていることを確認するメッセージが表示され、離れるかどうかを確認するよう求められます。またはそうではありません(可能であれば、いくつかのjavasriptを介して)。

どんな助けでも大歓迎です。

4

2 に答える 2

7

onbeforeunloadナビゲーションが実際に開始する前に起動し、かなりユニークな方法を使用してナビゲーションを停止できます。ダイアログに表示したい文字列を返すだけで、ブラウザはユーザーが本当にページを離れたいかどうかを尋ねます。

文字列を返さない場合、ブラウザは通常どおりナビゲーションを続行します。たとえば、この動作を使用して、ユーザーが未保存の変更を行った場合にのみプロンプトを表示できます。

window.onbeforeunload = function(e) {
    if (unsavedChanges) return 'Dialog text here.';
};

文字列を返し、ブラウザにプロンプ​​トを表示させることによってのみ、ナビゲーションを停止できます。で、alertまたはで実際に電話をかけることconfirmは禁止されています。で、実際にナビゲーションを停止する機能はありません。onbeforeunloadonunload

于 2013-01-16T20:13:30.610 に答える
1

jqueryの「on」APIでunloadメソッドを使用します。

 var flag = true; // set this var according to your use.
 $(window).on('beforeunload', function(){
     if(flag) {
        return "It looks like you have input you haven't submitted."
      }
 });
于 2013-01-16T20:06:25.150 に答える