Есть ли готовый способ (возможно, в одной из фреймворков) определить, имеет ли форма изменено по сравнению с ее исходными значениями?
Событие onchange не будет выполняться, потому что оно срабатывает независимо от фактического изменения (я мог бы, например, поставить галочку, и снова выключить, с двумя событиями onchange).
Последнее средство - сохранить исходное значение каждого элемента в скрытом поле и пройти через каждый. Если есть более быстрый метод, я был бы рад услышать об этом!