私は、ユーザーがデータを保存せずにページからナビゲートする必要があるため、データが保存されていないという警告メッセージが表示される必要があります。私は私のページに2つのリンクを持っています1.ヤフーと2.プロセス。ユーザーがYahooをクリックすると、プロンプトを表示する必要がありますが、ユーザーがプロセスをクリックすると、警告が表示される必要はありません。jQueryを使用してbeforeunloadイベントで送信者オブジェクトを見つける方法は?
以下はコードです。
<html>
<head runat="server">
<title></title>
<script src="http://localhost/HLC/Scripts/jquery-1.4.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
var hasChanged = false;
$(window).bind("beforeunload", function (e) {
if (hasChanged) {
return "Want to close with out saving data?";
}
});
$(document).ready(function() {
$(':input', document.myForm).bind("change", function() {
hasChanged = true;
});
});
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
Name:
<asp:TextBox runat="server" ID="txtName" />
<br />
<a id="redirect" href="http://www.yahoo.com">Click for yahoo.</a>
<asp:Button ID="process" Text="Process" runat="server" />
</div>
</form>
</body>
</html>
$(e.target).ATTR未定義として値を返して: は、しかし、あなたは確認を表示するかどうかを決定するためにいくつかのフラグを使用することができます。 – VIJAY
あなたのタグがid = "redirect"を持っていることがわかりました。したがって、それ($(e.target).attr( 'id'))はidを返すべきです。 –
はい、beforeunload以外のイベントでも同じことが働いています。 – VIJAY