2010-10-21 48 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

相關問題