2

ユーザーがテキストボックスに何かを入力し、無意識のうちにブラウザを閉じたときにプロンプ​​トを表示するにはどうすればよいですか?

また、ユーザーが入力フィールドに何も入力せず、ブラウザーを閉じると、ブラウザーはプロンプトを表示せずに閉じる必要があります。ブラウザは、ユーザーがフィールドで何かを変更した場合にのみプロンプトを表示する必要があります。イベントを使用するonbeforeunloadと、ページを保存するときでもすべてのイベントが発生します。javascriptで私の問題を解決する方法はありますか?私に適切なコードを与えることによって助けてください。

4

2 に答える 2

2

このリンクを確認してください:http ://www.4guysfromrolla.com/webtech/100604-1.shtml

onbeforeunloadイベントの処理方法に関する情報を提供します。

アイデアは、ページにグローバルフラグを設定することです。フィールドに変更が加えられると、このフラグはtrueに設定されます。保存ボタンをクリックした場合、このフラグをfalseに設定する必要があります。

onbeforeunloadイベントで、フラグがtrueであるかどうかを確認し、それに応じてメッセージを表示します。

var needToConfirm = true;

window.onbeforeunload = confirmExit;
function confirmExit()
{
    if (needToConfirm)
    {
        // check on the elements whether any change has been done on the fields.
        // If any change has been done, then set message here.
    }
}

function saveClicked()
{
    needToConfirm = false;
}

物事を行う別の方法は、onchangeイベントを介してフィールドに変更が加えられたときにneedToConfirmフラグを設定することです。

于 2012-12-02T05:11:54.917 に答える
2

を使用できますwindow.onbeforeunload
ユーザーがテキストを入力したかどうかを確認できます。入力した場合は、プロンプトを表示するメッセージを返すだけです。

var hook = false; //

window.onbeforeunload = function() {
    var x = $('#box').val();
    if (x.length > 1) { //check is user has entered text
        hook = true;
    }

    if (hook) { //return message if there is text
        hook = false; //reset hook
        return "Did you save your work?"
    }
}​

window.onbeforeunloadの詳細については、こちらをご覧ください
。デモへのリンクは次のとおりです。

于 2012-12-02T06:00:17.700 に答える