The main two approaches to achieve this are either by using JavaScript on the client side, or the Compare action on the server side.
Using JavaScript impacts accessibility, as you now require all users to have scripting turned on, but this may not be a problem for a controlled user base. This can be done by adding onchange events with the Set Value action to the fields. This would set the value of a specific hidden field called +?+?++modified+?+?+? for example to a static value, e.g. true.
To do it on the server side you would use the cache actions to store the information before the screen is displayed, and then to retrieve it again when the save is requested. You would then compare this retrieved cache data with that submitted from the page by the user using the Compare action. You should also ideally remove the cached data when you have finished the comparison to remove redundant cached data.
See Also:
How does the Compare action indicate differences between XML ...
RuleMaker Action Documentation
FormMaker Events Documentation
Using JavaScript impacts accessibility, as you now require all users to have scripting turned on, but this may not be a problem for a controlled user base. This can be done by adding onchange events with the Set Value action to the fields. This would set the value of a specific hidden field called +?+?++modified+?+?+? for example to a static value, e.g. true.
To do it on the server side you would use the cache actions to store the information before the screen is displayed, and then to retrieve it again when the save is requested. You would then compare this retrieved cache data with that submitted from the page by the user using the Compare action. You should also ideally remove the cached data when you have finished the comparison to remove redundant cached data.
See Also:
How does the Compare action indicate differences between XML ...
RuleMaker Action Documentation
FormMaker Events Documentation