Это может быть обработано только одной логической переменной, мы называем это грязной обработкой битов. Если вы наблюдали, как правило, на веб-страницах, когда пользователь выполняет какое-либо действие по редактированию любого из полей, форма считается грязной (отредактированной) (даже если данные остаются неизменными после редактирования). Когда пользователь пытается отойти от страницы, пользователю предлагается сохранить изменения.
Согласно стандартной практике, после редактирования какого-либо поля нет проверки, изменилось ли значение на самом деле или нет. Например: если пользователь редактирует и добавляет «xyz» к текстовому полю, а затем удаляет «xyz», по существу данные формы остаются такими же, как и раньше, но форма все еще считается «грязной», и пользователю предлагается предупреждающее сообщение, когда он пытается уйти.
Итак, если вы хотите реализовать это, все станет довольно просто. Вам просто нужно добавить обработчики событий onchange () к элементам управления и установить глобальную логическую переменную, похожую на isDirty, на true внутри этих обработчиков.
Когда пользователь захочет уйти, вы можете прошить сообщение «Возможно, на текущей странице есть несохраненные изменения. Вы хотите сохранить их?». Пользователь не будет разочарован, даже если он заметит, что его редактирование не изменило исходные данные.
Ответы, приведенные выше, реализуют именно это поведение. И я написал это, потому что у вас, похоже, была идея проверить каждое поле по его начальному значению, чтобы увидеть, действительно ли оно было изменено после редактирования. Просто хотел сказать вам, что проверка каждого поля вообще не нужна.