提示用户有关挂起的更改

时间:2012-08-19 03:17:54

标签: c# asp.net

我有一个ASP.NET页面,我有几个可编辑的下拉列表,几个可编辑的文本框和几个只显示字段。

我想跟踪用户是否更改了任何下拉值或文本框值。当用户点击goBack按钮时,我想提示他们没有保存更改的消息以及他们是否真的想要返回。

请告诉我在文本框或dropdwon列表中跟踪更改的最简单方法。

由于

2 个答案:

答案 0 :(得分:1)

您可以在页面中添加以下内容:

<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;"/> 

答案 1 :(得分:1)

您需要为要跟踪的所有输入添加更改处理程序 我强烈推荐jQuery blur 只要在输入或选择上发生焦点丢失,就会触发模糊。如果要跟踪实际值更改,可以使用jQuery data

保存加载页面的值
<script>
inputChanged = false;

$('input, select').blur(function() {
    inputChanged = true;
});

window.onbeforeunload = function()
{
    if (inputChanged)
    {
        return "You have unsaved changes. Discard change?";
    }
}
</script>