Field-level validation won't work because FM cann't grab field value when entering a field. Since you mention triggers, I assume you are using vs. 11. You can use script trigger OnObjectEnter (but OnObjectEnter will not work on radio button, checkbox or pop-up menu, which I consider a bug).
Script might be simply called "Grab Field Value" and be: Set Variable [ $$value ; Get ( ScriptParameter ) ] and the script parameter could be: Get ( ActiveFieldContents ). In this way, it could be used attached to many different fields.
There are other approaches and ways around the issue for pop-up menus etc if you need to handle those.
Thanks, LaRetta. That worked. I was hoping to find an "elegant" solution to this (to me, a trigger called onValidate sounds like it could provide script-side access to before-and-after data). Oh well, I feel like that kind of thing just happens all the time in FM if you have a background in "real" programming...