Script Triggers -- Comprehensive Guide
BeginnerMaster every FileMaker script trigger: layout-level, field-level, and object-level -- understanding their firing order, use cases, and common gotchas.
What you'll learn
- All layout-level triggers: OnLayoutEnter, OnLayoutKeystroke, OnRecordLoad, OnRecordCommit, etc.
- All object-level triggers: OnObjectEnter, OnObjectModify, OnObjectExit, OnObjectValidate
- Trigger firing order when multiple triggers apply simultaneously
- Cases where triggers do not fire and how to handle them
Script triggers fire automatically when specific user or system actions occur on a layout. From layout load (OnLayoutEnter) to field exit (OnObjectExit), triggers enable reactive behavior without requiring buttons. But triggers also have a strictly defined firing order, nesting rules, and cases where they do not fire that catch developers off-guard. This comprehensive guide covers all trigger events with their semantics.
Layout-level triggers
Layout triggers fire for events that affect the entire layout context, not a specific field. They are set in Layout Setup -> Script Triggers tab.
// Layout triggers: // OnLayoutEnter -- fires when navigating TO this layout (from a different layout) // Use for: initialize variables, apply default finds, set mode // OnLayoutExit -- fires when navigating AWAY from this layout // Use for: cleanup variables, confirm unsaved changes // OnLayoutKeystroke -- fires on every keystroke while layout has focus (not in a field) // Use for: keyboard shortcut interceptors // OnRecordLoad -- fires each time a different record becomes current (navigate records) // Use for: load record-specific state, check related record counts // OnRecordCommit -- fires after a record is saved (committed) // Use for: audit logging, notifications, version capture // OnRecordRevert -- fires when a record is reverted (Escape) // OnModeEnter -- fires when entering Browse, Find, or Preview mode
Sign in to track your progress and pick up where you left off.
Sign in to FM Dojo