2010-10-21 47 views
2

如何在不允许回发任何内容页的主页上放置一个验证器,直到该页上所有更改的控制数据都已保存或取消。检查离开前是否更改了字段数据

我目前的状况和目前正在对我的项目做的方式的细节如下所列

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

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

谢谢

回答

2

我以前解决过这样的问题之一。问题是要警告用户保存表单元素更改的任何更改。我使用jQuery(尽管可以使用普通的java脚本完成) 这是一个全局函数,它持续监视所有输入,并在变化时选择并设置dirtyFlag为true。 (您可能需要添加相同的其它控件太)

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

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

+0

我喜欢这个解决方案。我可能会给人们几天的时间来添加选项,然后我将其标记为已回答,但向这个老的怪物添加jquery可能会帮助很多事情。 – jumpdart 2010-10-21 22:20:07

相关问题