【问题标题】:Checking if field data changed before leaving page在离开页面之前检查字段数据是否更改
【发布时间】:2011-04-28 20:34:18
【问题描述】:

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

下面列出了我目前情况的具体情况以及目前在我的项目中完成的方式

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

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

谢谢

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

    • 我喜欢这个解决方案。在我将其标记为已回答之前,我可能会给人们几天的时间来添加选项,但是将 jquery 添加到这个老怪物可能会帮助很多事情。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-19
    • 1970-01-01
    • 1970-01-01
    • 2020-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多