Sorry Hongchuan, but I don't wish to provide an IS_CHECK capability. That would imply that you wish to make a distinction between how Check and Submit events are handled. This would open the possibility of giving different marks for the two events which would in my mind be a breach of contract. Furthermore it would break some aspects of how I currently handle caching of grading results.
You might be able to achieve most of what you want by hiding the Check button and using the Precheck button to deliver different feedback according to preferred behaviour.