0

我有一个 ASP.NET 页面,其中有几个可编辑的下拉菜单、几个可编辑的文本框和几个仅显示字段。

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

请让我知道在文本框或 dropdwon 列表上跟踪更改的最简单方法是什么。

谢谢

4

2 回答 2

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

于 2012-08-19T04:37:53.233 回答
1

您需要将更改处理程序添加到要跟踪的所有输入。
为此,我强烈推荐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>
于 2012-08-19T06:46:58.533 回答