在离开页面之前检查字段数据是否已更改

时间:2010-10-21 20:56:41

标签: c# javascript .net validation custom-attributes

如何将一个验证器放在不允许回发任何内容页面的母版页上,直到该页面上所有已更改的控制数据都已保存或取消。

我目前的具体情况以及我目前在我的项目上的工作方式如下所列

这是一个IE Web应用程序。该应用程序当前使用CSS行为在某些控件类型上设置HTML组件,这些控件类型向控件添加属性。在将页面提供给客户端之后,通过javascript控件包含的数据设置这些属性。母版页有一个验证器,它使用javascript将这些新属性中的数据与控件的当前值进行比较,以查看数据是否已更改。这会破坏应用程序的性能,需要进行更改。 CSS HTML组件的东西真的很糟糕,甚至与许多浏览器都不兼容。我考虑追求的两种可能性是1.)将属性添加到基页的init或其周围的控制服务器端,然后继续使用当前的javascript来设置它们。或2.)使用相同的javascript设置属性以添加它们。

如果有人之前遇到过这个问题,或者对如何应对这种情况有任何更好的想法,请告诉我。

由于

1 个答案:

答案 0 :(得分:2)

之前我确实解决了这个问题之一。问题是警告用户保存表单元素更改的任何更改。我用jQuery(尽管可以使用常规的java脚本完成) 这是一个全局函数,它继续监视所有输入,并在更改时选择并将dirtyFlag设置为true。 (您可能还需要为其他控件添加相同的内容)

$(function() {
        $('input').livequery('change', markDirtyFlag);
        $('select').livequery('change', markDirtyFlag);
});

当用户离开页面或完成其他ajax调用时,您可以检查脏标志并警告用户。 (使用jQuery全局回调和窗口卸载事件可以捕获ajax调用。)