That could work, if I set the defaultValue property on every element when it's loaded. See, this form could be loaded with pre-saved values, or it might be blank, based on the situation. Either way, if someone then enters a new value, I want to set the dirty flag.
But I guess if I build that...