私が誤って自分の登録ページを残してからユーザーを停止するため、以下のソリューションを持っている:jQueryの、onBeforeUnloadとASP.Netフォーム
var warning = true;
function CheckExit() {
if (warning) {
return "Changes done. Remember to save, blah blah.";
}
}
window.onbeforeunload = CheckExit;
addToPostBack = function (func) {
var old__doPostBack = __doPostBack;
if (typeof __doPostBack != 'function') {
__doPostBack = func;
} else {
__doPostBack = function (t, a) {
if (func(t, a)) old__doPostBack(t, a);
}
}
};
$(document).ready(function() {
$('#aspnetForm').submit(function() {
warning = false;
return true;
});
addToPostBack(function (t, a) {
warning = false;
return true;
});
});
このコードのほとんどはStackOverflowの上ここでは異なる質問からである、とだけで正常に動作私のローカルデバッグページ。警告なしにすべてのASP.Netコントロール(リンクボタン、ボタン)をクリックできますが、ユーザーがウィンドウを閉じるかナビゲートするとすぐに警告が表示されます。
しかし、サーバーに展開すると、ASP.Netコントロールもクリックすると警告が表示されます(実際には、「保存」ボタンをクリックしたときに変更が保存されていないことをユーザーに警告したくありません)。さて、私のローカルデバッグページとサーバーには違いがあります。サーバーはいくつかの広告を含む別のマスターページを使用しますが、Firebug(次の段落を参照)でデバッグした後、どのように違いが見られるのか分かりません。
Firebugを使って、すべてが正しくロードされていることを確認するためにJavascriptコードのさまざまな部分を実行しようとしました(私の最初の推測は、$( '#aspnetForm')を含むセクションがロードされていないということでした。違いはありますが)、全く改善はありません。この警告は、リンクまたはボタンのクリックごとにポップアップします。
私の主な問題は、私がaddToPostBack関数が何をしているのか十分に理解していないと思います。そのため、正しくデバッグできません。
何が間違っているかもしれないと考えている人がいますか?
「警告=偽」にしないでください。クライアントが保存ボタンをクリックしたら? – Naor
多くの法的ボタンがあるので、タブからタブへの切り替え、コンテンツの追加など。「warning = false;」を追加する。これらのすべてには、私が避けたいと思っている多くの作業があります。フォームが編集されると、維持するのは面倒です。 –
@Erlend D私もsmaeの問題を抱えています。どのようにエラーを修正しましたか?助けてください。 – ashishjmeshram