Determine whether a field has changed during hook_node_submit
As said from @Clive, the only way is to compare the value in $node with the value contained in $node-&gt;original. As far as I can see, that value is only available in hook_node_edit(), hook_node_update(), and hook_node_presave() since entity_load_unchanged() is called from node_save() (which also unset $node-&gt;original before exiting). If you need it in hook_node_submit() you could simply add the following code in your implementation.

if (!empty($node-&gt;nid) &amp;&amp; !isset($node-&gt;original)) {
  $node-&gt;original = entity_load_unchanged('node', $node-&gt;nid);
}


Since you are checking for field properties, the other, more general, hook would be hook_field_attach_submit().