One way is making your item a required item. In Pre-Form trigger you can write:
Set_Form_Property('your_module',Defer_Required_Enforcement,Property_True);
It means that you can't move to another record without filling required items but you can move between items within the same record.
---------
You can also use Pre-Record trigger and test there some conditions and if they are not met then use
RAISE Form_Trigger_Failure;
and focus remains in the current item.
I hope this will help you.
Helena