1
は、私は自分のページに次のJavaScriptを持っている:Telerik RadTextBox ValueChangedイベントとwindow.onbeforeunload
var isDirty = false;
function OnTextBoxValueChanged(sender, args)
{
isDirty = true;
}
window.onbeforeunload = function()
{
if (isDirty)
{
return 'You have unsaved changes on the form.';
}
}
OnTextBoxValueChangedがRadTextBoxの対応するクライアントイベントのハンドラーです。
テキストボックス内のテキストを変更した後、フォーカスを他の要素に移動し、ブラウザの「閉じる」タブを押すと、確認ウィンドウが表示されます。これは正しいです。しかし、ユーザーがテキストを変更してすぐに「閉じる」タブを押すとこの問題が発生します。この場合、onbeforeunloadイベントはonvaluechangedの前に発生し、isDirty変数はonbeforeunloadハンドラで不正な値(false)を持ちます。
私は何か間違っているのですか、私の場合には回避策がありますか?