Проверка, изменились ли данные поля перед тем, как покинуть страницу - PullRequest
2 голосов
/ 22 октября 2010

Как разместить один валидатор на главной странице, который не разрешает обратную передачу любых страниц контента, пока все измененные контрольные данные на этой странице не будут сохранены или отменены.

Особенностимоя текущая ситуация и то, как это делается в моем проекте, перечислены ниже

Это веб-приложение IE.В настоящее время приложение использует поведение CSS для установки компонентов HTML для определенных типов элементов управления, которые добавляют свойства к элементу управления.Эти свойства устанавливаются вместе с данными, содержащимися в элементе управления javascript после того, как страница была передана клиенту.Главная страница имеет валидатор, который использует JavaScript для сравнения данных в этих новых свойствах с текущими значениями элементов управления, чтобы увидеть, были ли данные изменены.Это разрушает производительность приложения и должно быть изменено.HTML-компонент CSS действительно тянет и даже не совместим со многими браузерами.Две возможности, которые я собираюсь рассмотреть, следующие: 1.) добавить атрибуты к стороне сервера управления при инициализации базовой страницы или около нее, а затем продолжить использовать текущий javascript для их установки.или 2.) с использованием того же javascript, который устанавливает свойства для их добавления.

Если кто-то сталкивался с этой проблемой ранее или у кого-то есть идеи о том, как мне следует обращаться с такой ситуацией, пожалуйста, дайте мне знать.

Спасибо

1 Ответ

2 голосов
/ 22 октября 2010

Я решил одну из таких проблем раньше.Проблема состоит в том, чтобы предупредить пользователя, чтобы сохранить любые изменения на элементах формы изменения.Я использовал jQuery (хотя это можно сделать с помощью обычного java-скрипта). Это глобальная функция, которая отслеживает все входные данные, выбирает и устанавливает для dirtyFlag значение true при изменении.(вам может понадобиться добавить то же самое и для других элементов управления)

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

Когда пользователь уходит со страницы или когда выполняются другие вызовы AJAX, вы можете проверить флаг грязных сообщений и предупредить пользователя.(ajax-вызовы могут быть перехвачены с помощью глобальных обратных вызовов jQuery и событий выгрузки окна).

...