ASP.NETページがあり、編集可能なドロップダウンがいくつかあり、編集可能なテキストボックスがいくつかあり、表示専用フィールドがいくつかあります。
ユーザーがドロップダウン値またはテキストボックス値を変更したかどうかを追跡したいと思います。ユーザーが[戻る]ボタンをクリックすると、変更が保存されていないことと、本当に戻りたいかどうかを示すメッセージが表示されます。
テキストボックスまたはdropdwonリストの変更を追跡する最も簡単な方法を教えてください。
ありがとう
追跡するすべての入力に変更ハンドラーを追加する必要があります。これにはjQuery Blur
を強くお勧めします。
入力または選択でフォーカスの喪失が発生するたびに、ぼかしが発生します。実際の値の変化を追跡する場合は、 jQuery データを使用してページに読み込まれた値を保存できます
<script>
inputChanged = false;
$('input, select').blur(function() {
inputChanged = true;
});
window.onbeforeunload = function()
{
if (inputChanged)
{
return "You have unsaved changes. Discard change?";
}
}
</script>
次のようなものをページに追加できます。
<script type="text/javascript">
var submit = false;
window.onbeforeunload = confirmLeave;
function confirmLeave()
{
if (!submit)
{
return "You have unsaved changes. Are you sure you want to leave the page?";
}
}
</script>
<asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClientClick="javascript:submit=true;"/>